打印接口

This commit is contained in:
z 2025-07-09 20:58:58 +08:00
parent 7ba9e18346
commit f8cd8db633
20 changed files with 469 additions and 13 deletions

View File

@ -159,9 +159,9 @@ public class bdgzsomthingController {
//@Scheduled(cron = "0 2 0 * * ?") //每天十天执行一次 //@Scheduled(cron = "0 2 0 * * ?") //每天十天执行一次
@PostConstruct @PostConstruct
public void init() { public void init() {
selectHasPrice(); // selectHasPrice();
selectSafeStorageAndDeliverOneYear(); // selectSafeStorageAndDeliverOneYear();
bdgzsomthingService.selectds(); // bdgzsomthingService.selectds();
} }
@Scheduled(cron = "0 0 2 * * ?") @Scheduled(cron = "0 0 2 * * ?")
public void selectHasPrice(){ public void selectHasPrice(){

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.chanko.yunxi.mes.module.heli.controller.admin.outsourcestockboom.vo.OutsourceStockBoomSaveReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.outsourcestockboom.vo.OutsourceStockBoomSaveReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagein.StorageInDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageinventory.StorageInventoryDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageinventory.StorageInventoryDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO;
@ -325,4 +326,11 @@ public class StorageController {
public CommonResult<Boolean> procurementAndStorage(@Valid @RequestBody StorageSaveReqVO createReqVO) { public CommonResult<Boolean> procurementAndStorage(@Valid @RequestBody StorageSaveReqVO createReqVO) {
return storageService.procurementAndStorage(createReqVO); return storageService.procurementAndStorage(createReqVO);
} }
@GetMapping("/isPrint")
@Operation(summary = "打印")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
public CommonResult<StorageDO> isPrint(@RequestParam("id") Long id) {
return success(storageService.isPrint(id));
}
} }

View File

@ -1,5 +1,7 @@
package com.chanko.yunxi.mes.module.heli.dal.dataobject.storage; package com.chanko.yunxi.mes.module.heli.dal.dataobject.storage;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageindetail.StorageInDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
import lombok.*; import lombok.*;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -126,6 +128,15 @@ public class StorageDO extends BaseDO {
private String unit; private String unit;
@TableField(exist = false) @TableField(exist = false)
private BigDecimal caiGouMoney; private BigDecimal caiGouMoney;
@TableField(exist = false)
private String supplierName;
@TableField(exist = false)
private List<StorageMatDO> storageMatDOList;
@TableField(exist = false)
private String userName;
@TableField(exist = false)
private String signature;
@TableField(exist = false)
private Date date;
} }

View File

@ -80,4 +80,11 @@ public class StorageInDO extends BaseDO {
private String supplierName; private String supplierName;
@TableField(exist = false) @TableField(exist = false)
private List<StorageInDetailDO> storageInDetailDOList; private List<StorageInDetailDO> storageInDetailDOList;
@TableField(exist = false)
private String userName;
@TableField(exist = false)
private String signature;
@TableField(exist = false)
private Date date;
} }

View File

@ -171,5 +171,14 @@ public class StorageInDetailDO extends BaseDO {
*/ */
@TableField(exist = false) @TableField(exist = false)
private String materialCode; private String materialCode;
/**
* 单位名称
*/
@TableField(exist = false)
private String unit;
/**
* 单价
*/
@TableField(exist = false)
private BigDecimal price;
} }

View File

@ -130,5 +130,9 @@ public class StorageMatDO extends BaseDO {
@TableField(exist = false) @TableField(exist = false)
private BigDecimal matRest; private BigDecimal matRest;
@TableField(exist = false)
private BigDecimal unitPrice;
@TableField(exist = false)
private BigDecimal totalPrice;
} }

View File

@ -10,6 +10,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorder.PurchaseOrd
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagein.StorageInDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagein.StorageInDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageindetail.StorageInDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageindetail.StorageInDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier.SupplierDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier.SupplierDO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.dict.DictDataDO;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import com.chanko.yunxi.mes.module.heli.controller.admin.storageindetail.vo.*; import com.chanko.yunxi.mes.module.heli.controller.admin.storageindetail.vo.*;
@ -62,12 +63,15 @@ public interface StorageInDetailMapper extends BaseMapperX<StorageInDetailDO> {
query.selectAll(StorageInDetailDO.class) query.selectAll(StorageInDetailDO.class)
.select("sup.name as supplierName","m.code as materialCode") .select("sup.name as supplierName","m.code as materialCode")
.select("d.label as unit")
.leftJoin(SupplierDO.class,"sup", SupplierDO::getId, StorageInDetailDO::getSupplierId) .leftJoin(SupplierDO.class,"sup", SupplierDO::getId, StorageInDetailDO::getSupplierId)
.leftJoin(MaterialDO.class,"m", MaterialDO::getId, StorageInDetailDO::getMaterialId) .leftJoin(MaterialDO.class,"m", MaterialDO::getId, StorageInDetailDO::getMaterialId)
.leftJoin(DictDataDO.class,"d",DictDataDO::getValue, StorageInDetailDO::getBoomUnit)
.groupBy(StorageInDetailDO::getId) .groupBy(StorageInDetailDO::getId)
.disableSubLogicDel() .disableSubLogicDel()
.orderByDesc(StorageInDetailDO::getCreateTime); .orderByDesc(StorageInDetailDO::getCreateTime);
query.eq(pageReqVO.getStorageNoId() != null, StorageInDetailDO::getStorageNoId, pageReqVO.getStorageNoId()); query.eq(pageReqVO.getStorageNoId() != null, StorageInDetailDO::getStorageNoId, pageReqVO.getStorageNoId())
.eq("d.dict_type","heli_material_unit");
return selectPage(pageReqVO, query); return selectPage(pageReqVO, query);
} }
} }

View File

@ -12,10 +12,13 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrder
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageindetail.StorageInDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageinventory.StorageInventoryDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.warehouse.WarehouseDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.warehouse.WarehouseDO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO; import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.dict.DictDataDO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -101,4 +104,24 @@ public interface StorageMatMapper extends BaseMapperX<StorageMatDO> {
} }
List<StorageMatValidRespVO> selectStorageMatValid(Long whId); List<StorageMatValidRespVO> selectStorageMatValid(Long whId);
default List<StorageMatDO> selectMatByStorckId(Long stockId) {
MPJLambdaWrapper<StorageMatDO> query = new MPJLambdaWrapper<>();
query.selectAll(StorageMatDO.class)
.select("o.project_name as projectName ,l.name as matName ,l.material_type as matType,l.spec as matSpec,d.label as matUnit")
.select("w.price as unitPrice,ROUND(COALESCE(t.storage_ok_qty * w.price, 0), 1) AS totalPrice")
.leftJoin(MaterialDO.class,"l",MaterialDO::getId,StorageMatDO::getMatId)
.leftJoin(DictDataDO.class,"d",DictDataDO::getValue, MaterialDO::getUnit)
.leftJoin("wms_storage_inventory w on t.wh_id=w.wh_id and t.rg_id=w.rg_id and t.pn_id=w.pn_id and t.mat_id=w.material_id and w.tenant_id=2 and w.deleted=0")
.leftJoin(ProjectOrderSubDO.class,"sub",ProjectOrderSubDO::getId,StorageMatDO::getProjectNo)
.leftJoin(ProjectOrderDO.class,"o",ProjectOrderDO::getId,ProjectOrderSubDO::getProjectOrderId)
.disableSubLogicDel()
.orderByDesc(StorageMatDO::getId)
.groupBy(StorageMatDO::getId)
.eq(StorageMatDO::getStockId, stockId)
.eq("d.dict_type","heli_material_unit");
return selectList(query);
}
} }

View File

@ -308,6 +308,63 @@ public class MaterialPlanServiceImpl implements MaterialPlanService {
} }
// materialPlanBoomMapper.insertBatch(materialPlanBoomDOList); // materialPlanBoomMapper.insertBatch(materialPlanBoomDOList);
taskDispatchDetailMapper.insertOrUpdateBatch(list); taskDispatchDetailMapper.insertOrUpdateBatch(list);
List<AttentiontodoDO> attentiontodook = attentiontodoMapper.selectByIdlist(8);//查找该类型的待办和关注人
String nickname = userApi.getUser( SecurityFrameworkUtils.getLoginUser().getId()).getNickname();
List<AttentiontodoDO> attentiontodook1 = attentiontodoService.getAttentiontodolistdaiban(8);
if (attentiontodook1.size()<1){
{
AttentiontodoDO attentiontodoDO = new AttentiontodoDO();
attentiontodoDO.setEvent("《物料需求计划》提交后");
attentiontodoDO.setAttr5("1");
attentiontodoDO.setAttr4(nickname);
attentiontodoDO.setLevel("1");
attentiontodook.add(attentiontodoDO);
}
}
for (AttentiontodoDO attentiontodoRespVO : attentiontodook) {
{
// for (StorageLogNowDO storageLogNowDO : pageResult) {
bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO();
BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称
BdgzsomthingDO.setThings("物料需求计划单号:" + planDO.getProjectMaterialPlanNo() + "已提交");//事件名称
BdgzsomthingDO.setAttr2(planDO.getProjectMaterialPlanNo());//跳转携带参数
BdgzsomthingDO.setAttr3(planDO.getProjectMaterialPlanNo());//独特标识
// BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期
// BdgzsomthingDO.setShowname(new Date());比较创建时间,不用单独填写
if (attentiontodoRespVO.getAttr5().equals("1")) {//提醒状态
BdgzsomthingDO.setDborgz("待办");
} else if (attentiontodoRespVO.getAttr5().equals("2")) {
BdgzsomthingDO.setDborgz("关注");
}
//提醒人
if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())) {
AdminUserDO user = adminUserService.getUser(Long.valueOf(planDO.getCreator()));
if (ObjectUtil.isNotEmpty(user)) {
BdgzsomthingDO.setClick(user.getNickname());
}
} else {
BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());
}
if (attentiontodoRespVO.getLevel().equals("1")) {
BdgzsomthingDO.setLevel("紧急");
} else if (attentiontodoRespVO.getLevel().equals("2")) {
BdgzsomthingDO.setLevel("一般");
} else if (attentiontodoRespVO.getLevel().equals("3")) {
BdgzsomthingDO.setLevel("非紧急");
}
// BdgzsomthingDO.setClick(attentiontodoRespVO.getRemindman());//提醒人
BdgzsomthingDO.setYesorno("0");//是否点击
BdgzsomthingDO.setAttr4("0");//是否已处理
// BdgzsomthingDO.setShowname(operateReqVO.getCreateTime());//获取数据当前表的创建事件
bdgzsomthingMapper.insert(BdgzsomthingDO);
}
}
return true; return true;
} }

View File

@ -1110,6 +1110,72 @@ public class ProcessBomServiceImpl implements ProcessBomService {
} }
materialPlanBoomMapper.insertBatch(materialPlanBoomDOList); materialPlanBoomMapper.insertBatch(materialPlanBoomDOList);
processBomDetailMapper.insertOrUpdateBatch(list); processBomDetailMapper.insertOrUpdateBatch(list);
List<AttentiontodoDO> attentiontodook = attentiontodoMapper.selectByIdlist(8);//查找该类型的待办和关注人
String nickname = userApi.getUser( SecurityFrameworkUtils.getLoginUser().getId()).getNickname();
List<AttentiontodoDO> attentiontodook1 = attentiontodoService.getAttentiontodolistdaiban(8);
if (attentiontodook1.size()<1){
{
AttentiontodoDO attentiontodoDO = new AttentiontodoDO();
attentiontodoDO.setEvent("《物料需求计划》提交后");
attentiontodoDO.setAttr5("1");
attentiontodoDO.setAttr4(nickname);
attentiontodoDO.setLevel("1");
attentiontodook.add(attentiontodoDO);
}
}
for (AttentiontodoDO attentiontodoRespVO : attentiontodook) {
{
// for (StorageLogNowDO storageLogNowDO : pageResult) {
bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO();
BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称
BdgzsomthingDO.setThings("物料需求计划单号:"+planDO.getProjectMaterialPlanNo()+"已提交");//事件名称
BdgzsomthingDO.setAttr2(planDO.getProjectMaterialPlanNo());//跳转携带参数
BdgzsomthingDO.setAttr3(planDO.getProjectMaterialPlanNo());//独特标识
// BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期
// BdgzsomthingDO.setShowname(new Date());比较创建时间,不用单独填写
if(attentiontodoRespVO.getAttr5().equals("1")){//提醒状态
BdgzsomthingDO.setDborgz("待办");
}
else if(attentiontodoRespVO.getAttr5().equals("2")){
BdgzsomthingDO.setDborgz("关注");
}
//提醒人
if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())){
AdminUserDO user = adminUserService.getUser(Long.valueOf(planDO.getCreator()));
if (ObjectUtil.isNotEmpty(user)){
BdgzsomthingDO.setClick(user.getNickname());
}
}else {
BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());
}
if(attentiontodoRespVO.getLevel().equals("1")){
BdgzsomthingDO.setLevel("紧急");
}
else if(attentiontodoRespVO.getLevel().equals("2")){
BdgzsomthingDO.setLevel("一般");
}
else if(attentiontodoRespVO.getLevel().equals("3")){
BdgzsomthingDO.setLevel("非紧急");
}
// BdgzsomthingDO.setClick(attentiontodoRespVO.getRemindman());//提醒人
BdgzsomthingDO.setYesorno("0");//是否点击
BdgzsomthingDO.setAttr4("0");//是否已处理
// BdgzsomthingDO.setShowname(operateReqVO.getCreateTime());//获取数据当前表的创建事件
bdgzsomthingMapper.insert(BdgzsomthingDO);
// }
}
}
return true; return true;
} }

View File

@ -4,27 +4,38 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.chanko.yunxi.mes.framework.common.exception.ErrorCode; import com.chanko.yunxi.mes.framework.common.exception.ErrorCode;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.attentiontodo.AttentiontodoDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplandetail.MaterialPlanDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplandetail.MaterialPlanDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplan.MaterialPlanMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplan.MaterialPlanMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplandetail.MaterialPlanDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplandetail.MaterialPlanDetailMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper;
import com.chanko.yunxi.mes.module.heli.enums.CodeEnum; import com.chanko.yunxi.mes.module.heli.enums.CodeEnum;
import com.chanko.yunxi.mes.module.heli.service.attentiontodo.AttentiontodoService;
import com.chanko.yunxi.mes.module.heli.service.procedure.ProcedureService; import com.chanko.yunxi.mes.module.heli.service.procedure.ProcedureService;
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
import com.chanko.yunxi.mes.module.heli.service.storage.StorageService; import com.chanko.yunxi.mes.module.heli.service.storage.StorageService;
import com.chanko.yunxi.mes.module.system.api.user.AdminUserApi;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
import com.sun.scenario.effect.impl.prism.PrTexture;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -34,6 +45,8 @@ import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordernodetail.vo.*; import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordernodetail.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
@ -78,8 +91,19 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe
private StorageMatMapper storageMatMapper; private StorageMatMapper storageMatMapper;
@Resource @Resource
private StorageService storageService; private StorageService storageService;
@Resource
private PurchaseOrderNoMapper purchaseOrderNoMapper;
@Resource
private AdminUserApi userApi;
@Resource
private AttentiontodoService attentiontodoService;
@Resource
private com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper bdgzsomthingMapper;
@Resource
private AdminUserService adminUserService;
@Resource
private AttentiontodoMapper attentiontodoMapper;
@Override @Override
public Long createPurchaseOrderNoDetail(PurchaseOrderNoDetailSaveReqVO createReqVO) { public Long createPurchaseOrderNoDetail(PurchaseOrderNoDetailSaveReqVO createReqVO) {
@ -250,7 +274,98 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe
storageService.updateMatLogList(out.getId(),2); storageService.updateMatLogList(out.getId(),2);
storageMapper.deleteById(storageDO); storageMapper.deleteById(storageDO);
storageMapper.deleteById(out); storageMapper.deleteById(out);
// materialMapper.insertBatch(materialDOList); // materialMapper.insertBatch(materialDOList);
List<Long> idList = list.stream()
.filter(Objects::nonNull) // 过滤空对象
.map(PurchaseOrderNoDetailDO::getId)
.filter(Objects::nonNull) // 过滤空ID
.collect(Collectors.toList());
LambdaQueryWrapper<PurchaseOrderNoDetailDO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(PurchaseOrderNoDetailDO::getId,idList);
List<PurchaseOrderNoDetailDO> purchaseOrderNoDetailDOS = purchaseOrderNoDetailMapper.selectList(lambdaQueryWrapper);
List<Long> ids = purchaseOrderNoDetailDOS.stream()
.filter(Objects::nonNull) // 过滤空对象
.map(PurchaseOrderNoDetailDO::getPurchaseOrderId)
.filter(Objects::nonNull) // 过滤空ID
.collect(Collectors.toList());
LambdaQueryWrapper<PurchaseOrderNoDO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(PurchaseOrderNoDO::getId,ids);
List<PurchaseOrderNoDO> purchaseOrderNoDOS = purchaseOrderNoMapper.selectList(queryWrapper);
for (PurchaseOrderNoDO purchaseOrderNoDO : purchaseOrderNoDOS) {
LambdaQueryWrapper<PurchaseOrderNoDetailDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PurchaseOrderNoDetailDO::getPurchaseOrderId, purchaseOrderNoDO.getId());
List<PurchaseOrderNoDetailDO> lists = purchaseOrderNoDetailMapper.selectList(wrapper);
// 方法1使用 Stream API最简洁
boolean allStatus3 = lists != null &&
!lists.isEmpty() &&
lists.stream()
.allMatch(detail -> detail.getReceivingStatus()==3);
if (allStatus3) {
//采购订单收货完成
List<AttentiontodoDO> attentiontodook = attentiontodoMapper.selectByIdlist(10);//查找该类型的待办和关注人
String nickname = userApi.getUser(SecurityFrameworkUtils.getLoginUser().getId()).getNickname();
List<AttentiontodoDO> attentiontodook1 = attentiontodoService.getAttentiontodolistdaiban(10);
if (attentiontodook1.size() < 1) {
{
AttentiontodoDO attentiontodoDO = new AttentiontodoDO();
attentiontodoDO.setEvent("《采购订单》到货时通知检验");
attentiontodoDO.setAttr5("1");
attentiontodoDO.setAttr4(nickname);
attentiontodoDO.setLevel("1");
attentiontodook.add(attentiontodoDO);
}
}
for (AttentiontodoDO attentiontodoRespVO : attentiontodook) {
{
// for (StorageLogNowDO storageLogNowDO : pageResult) {
bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO();
BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称
BdgzsomthingDO.setThings("采购订单" + purchaseOrderNoDO.getPurchaseNo() + "已完成收货");//事件名称
BdgzsomthingDO.setAttr2(purchaseOrderNoDO.getPurchaseNo());//跳转携带参数
BdgzsomthingDO.setAttr3(purchaseOrderNoDO.getPurchaseNo());//独特标识
// BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期
// BdgzsomthingDO.setShowname(new Date());比较创建时间,不用单独填写
if (attentiontodoRespVO.getAttr5().equals("1")) {//提醒状态
BdgzsomthingDO.setDborgz("待办");
} else if (attentiontodoRespVO.getAttr5().equals("2")) {
BdgzsomthingDO.setDborgz("关注");
}
if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())) {
AdminUserDO user = adminUserService.getUser(Long.valueOf(purchaseOrderNoDO.getCreator()));
if (ObjectUtil.isNotEmpty(user)) {
BdgzsomthingDO.setClick(user.getNickname());
}
} else {
BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());
}//提醒人
if (attentiontodoRespVO.getLevel().equals("1")) {
BdgzsomthingDO.setLevel("紧急");
} else if (attentiontodoRespVO.getLevel().equals("2")) {
BdgzsomthingDO.setLevel("一般");
} else if (attentiontodoRespVO.getLevel().equals("3")) {
BdgzsomthingDO.setLevel("非紧急");
}
// BdgzsomthingDO.setClick(attentiontodoRespVO.getRemindman());//提醒人
BdgzsomthingDO.setYesorno("0");//是否点击
BdgzsomthingDO.setAttr4("0");//是否已处理
// BdgzsomthingDO.setShowname(operateReqVO.getCreateTime());//获取数据当前表的创建事件
bdgzsomthingMapper.insert(BdgzsomthingDO);
// }
}
}
}
}
return success(true); return success(true);
} }

View File

@ -75,4 +75,6 @@ public interface StorageService {
List<StorageDO> getList(Long id, Long projectSubId); List<StorageDO> getList(Long id, Long projectSubId);
CommonResult<Boolean> procurementAndStorage(StorageSaveReqVO createReqVO); CommonResult<Boolean> procurementAndStorage(StorageSaveReqVO createReqVO);
StorageDO isPrint(Long id);
} }

View File

@ -37,6 +37,8 @@ import com.chanko.yunxi.mes.module.heli.enums.CodeEnum;
import com.chanko.yunxi.mes.module.heli.service.master.MasterService; import com.chanko.yunxi.mes.module.heli.service.master.MasterService;
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
import com.chanko.yunxi.mes.module.heli.service.storagelog.StorageLogService; import com.chanko.yunxi.mes.module.heli.service.storagelog.StorageLogService;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -101,6 +103,8 @@ public class StorageServiceImpl implements StorageService {
private PurchaseOrderNoDetailMapper purchaseOrderNoDetailMapper; private PurchaseOrderNoDetailMapper purchaseOrderNoDetailMapper;
@Resource @Resource
private StorageInventoryMapper storageInventoryMapper; private StorageInventoryMapper storageInventoryMapper;
@Resource
private AdminUserService adminUserService;
@Resource @Resource
private StorageLogService storageLogService; private StorageLogService storageLogService;
@ -511,4 +515,20 @@ private StorageLogService storageLogService;
return CommonResult.success(true); return CommonResult.success(true);
} }
@Override
public StorageDO isPrint(Long id) {
StorageDO storageDO = storageMapper.selectById(id);
if (ObjectUtil.isNotEmpty(storageDO)){
storageDO.setSupplierName("");
storageDO.setSignature("");
AdminUserDO user = adminUserService.getUser(getLoginUser().getId());
if (ObjectUtil.isNotEmpty(user)){
storageDO.setUserName(user.getNickname());
}
List<StorageMatDO> storageMatDOS = storageMatMapper.selectMatByStorckId(id);
storageDO.setStorageMatDOList(storageMatDOS);
}
return storageDO;
}
} }

View File

@ -4,21 +4,30 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils;
import com.chanko.yunxi.mes.module.heli.controller.admin.storageindetail.vo.StorageInDetailPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.storageindetail.vo.StorageInDetailPageReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.attentiontodo.AttentiontodoDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageindetail.StorageInDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageindetail.StorageInDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO;
import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.PurchaseOrderNoDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.PurchaseOrderNoDetailMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storageindetail.StorageInDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.storageindetail.StorageInDetailMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper;
import com.chanko.yunxi.mes.module.heli.enums.CodeEnum; import com.chanko.yunxi.mes.module.heli.enums.CodeEnum;
import com.chanko.yunxi.mes.module.heli.service.attentiontodo.AttentiontodoService;
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
import com.chanko.yunxi.mes.module.heli.service.storage.StorageService; import com.chanko.yunxi.mes.module.heli.service.storage.StorageService;
import com.chanko.yunxi.mes.module.system.api.user.AdminUserApi;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
import com.sun.corba.se.spi.ior.IdentifiableFactory; import com.sun.corba.se.spi.ior.IdentifiableFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -70,6 +79,16 @@ public class StorageInServiceImpl implements StorageInService {
private StorageMatMapper storageMatMapper; private StorageMatMapper storageMatMapper;
@Resource @Resource
private StorageService storageService; private StorageService storageService;
@Resource
private AdminUserService adminUserService;
@Resource
private AttentiontodoMapper attentiontodoMapper;
@Resource
private AdminUserApi userApi;
@Resource
private AttentiontodoService attentiontodoService;
@Resource
private com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper bdgzsomthingMapper;
@Override @Override
public Long createStorageIn(StorageInSaveReqVO createReqVO) { public Long createStorageIn(StorageInSaveReqVO createReqVO) {
// 插入 // 插入
@ -142,10 +161,21 @@ public class StorageInServiceImpl implements StorageInService {
public StorageInDO isPrint(Long id) { public StorageInDO isPrint(Long id) {
StorageInDO storageInDO = storageInMapper.selectById(id); StorageInDO storageInDO = storageInMapper.selectById(id);
if (ObjectUtil.isNotEmpty(storageInDO)){ if (ObjectUtil.isNotEmpty(storageInDO)){
AdminUserDO user = adminUserService.getUser(getLoginUser().getId());
if (ObjectUtil.isNotEmpty(user)){
storageInDO.setUserName(user.getNickname());
}
storageInDO.setSignature("");
StorageInDetailPageReqVO page = new StorageInDetailPageReqVO(); StorageInDetailPageReqVO page = new StorageInDetailPageReqVO();
page.setStorageNoId(id); page.setStorageNoId(id);
page.setPageSize(PageParam.PAGE_SIZE_NONE); page.setPageSize(PageParam.PAGE_SIZE_NONE);
List<StorageInDetailDO> list = storageInDetailMapper.getByStorageId(page).getList(); List<StorageInDetailDO> list = storageInDetailMapper.getByStorageId(page).getList();
if (ObjectUtil.isNotEmpty(list)){
storageInDO.setSupplierName(list.get(0).getSupplierName());
for (StorageInDetailDO storageInDetailDO : list) {
storageInDetailDO.setPrice(storageInDetailDO.getEstimatedPrice().divide(storageInDetailDO.getStorageAmount(),1, RoundingMode.HALF_UP));
}
}
storageInDO.setStorageInDetailDOList(list); storageInDO.setStorageInDetailDOList(list);
} }
return storageInDO; return storageInDO;
@ -177,7 +207,6 @@ public class StorageInServiceImpl implements StorageInService {
} }
LambdaQueryWrapper<StorageInDetailDO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<StorageInDetailDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StorageInDetailDO::getPurchaseOrderNoDetailId,purchaseOrderNoDetailDO.getId()); wrapper.eq(StorageInDetailDO::getPurchaseOrderNoDetailId,purchaseOrderNoDetailDO.getId());
wrapper.eq(StorageInDetailDO::getDeleted,0);
List<StorageInDetailDO> storageInDetailDOS = storageInDetailMapper.selectList(wrapper); List<StorageInDetailDO> storageInDetailDOS = storageInDetailMapper.selectList(wrapper);
BigDecimal sum=BigDecimal.ZERO; BigDecimal sum=BigDecimal.ZERO;
BigDecimal StorageAmount=BigDecimal.ZERO; BigDecimal StorageAmount=BigDecimal.ZERO;
@ -325,6 +354,94 @@ public class StorageInServiceImpl implements StorageInService {
storageService.updateMatLogList(out.getId(),2); storageService.updateMatLogList(out.getId(),2);
storageMapper.deleteById(storageDO); storageMapper.deleteById(storageDO);
storageMapper.deleteById(out); storageMapper.deleteById(out);
List<Long> ids = purchaseOrderNoDetailDOS.stream()
.filter(Objects::nonNull) // 过滤空对象
.map(PurchaseOrderNoDetailDO::getPurchaseOrderId)
.filter(Objects::nonNull) // 过滤空ID
.collect(Collectors.toList());
LambdaQueryWrapper<PurchaseOrderNoDO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(PurchaseOrderNoDO::getId,ids);
List<PurchaseOrderNoDO> purchaseOrderNoDOS = purchaseOrderNoMapper.selectList(queryWrapper);
for (PurchaseOrderNoDO purchaseOrderNoDO : purchaseOrderNoDOS) {
LambdaQueryWrapper<PurchaseOrderNoDetailDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PurchaseOrderNoDetailDO::getPurchaseOrderId,purchaseOrderNoDO.getId());
List<PurchaseOrderNoDetailDO> lists = purchaseOrderNoDetailMapper.selectList(wrapper);
// 方法1使用 Stream API最简洁
boolean allStatus3 = lists != null &&
!lists.isEmpty() &&
lists.stream()
.allMatch(detail -> detail.getReceivingStatus()==3);
if (allStatus3){
//采购订单收货完成
List<AttentiontodoDO> attentiontodook = attentiontodoMapper.selectByIdlist(10);//查找该类型的待办和关注人
String nickname = userApi.getUser( SecurityFrameworkUtils.getLoginUser().getId()).getNickname();
List<AttentiontodoDO> attentiontodook1 = attentiontodoService.getAttentiontodolistdaiban(10);
if (attentiontodook1.size()<1){
{
AttentiontodoDO attentiontodoDO = new AttentiontodoDO();
attentiontodoDO.setEvent("《采购订单》到货时通知检验");
attentiontodoDO.setAttr5("1");
attentiontodoDO.setAttr4(nickname);
attentiontodoDO.setLevel("1");
attentiontodook.add(attentiontodoDO);
}
}
for (AttentiontodoDO attentiontodoRespVO : attentiontodook) {
{
// for (StorageLogNowDO storageLogNowDO : pageResult) {
bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO();
BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称
BdgzsomthingDO.setThings("采购订单"+purchaseOrderNoDO.getPurchaseNo()+"已完成收货");//事件名称
BdgzsomthingDO.setAttr2(purchaseOrderNoDO.getPurchaseNo());//跳转携带参数
BdgzsomthingDO.setAttr3(purchaseOrderNoDO.getPurchaseNo());//独特标识
// BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期
// BdgzsomthingDO.setShowname(new Date());比较创建时间,不用单独填写
if(attentiontodoRespVO.getAttr5().equals("1")){//提醒状态
BdgzsomthingDO.setDborgz("待办");
}
else if(attentiontodoRespVO.getAttr5().equals("2")){
BdgzsomthingDO.setDborgz("关注");
}
if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())){
AdminUserDO user = adminUserService.getUser(Long.valueOf(purchaseOrderNoDO.getCreator()));
if (ObjectUtil.isNotEmpty(user)){
BdgzsomthingDO.setClick(user.getNickname());
}
}else {
BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());
}//提醒人
if(attentiontodoRespVO.getLevel().equals("1")){
BdgzsomthingDO.setLevel("紧急");
}
else if(attentiontodoRespVO.getLevel().equals("2")){
BdgzsomthingDO.setLevel("一般");
}
else if(attentiontodoRespVO.getLevel().equals("3")){
BdgzsomthingDO.setLevel("非紧急");
}
// BdgzsomthingDO.setClick(attentiontodoRespVO.getRemindman());//提醒人
BdgzsomthingDO.setYesorno("0");//是否点击
BdgzsomthingDO.setAttr4("0");//是否已处理
// BdgzsomthingDO.setShowname(operateReqVO.getCreateTime());//获取数据当前表的创建事件
bdgzsomthingMapper.insert(BdgzsomthingDO);
// }
}
}
}
}
return CommonResult.success(true); return CommonResult.success(true);
} }

View File

@ -59,6 +59,7 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
/** /**
@ -115,6 +116,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1);
taskDispatch.setCode(taskDispatchTypeEnum.getCodeEnum().getCode(serialNumberDO.getSerialNumber().toString())); taskDispatch.setCode(taskDispatchTypeEnum.getCodeEnum().getCode(serialNumberDO.getSerialNumber().toString()));
taskDispatch.setDispatchStatus(TaskDispatchStatusEnum.valueOf(createReqVO.getActive()).getCode()); taskDispatch.setDispatchStatus(TaskDispatchStatusEnum.valueOf(createReqVO.getActive()).getCode());
taskDispatch.setCreator(getLoginUser().getId().toString());
taskDispatchMapper.insert(taskDispatch); taskDispatchMapper.insert(taskDispatch);
// 回写序列记录 // 回写序列记录
@ -236,12 +238,14 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
//2025-01-17 取消提交 - 如果已报工完成的工序报工状态还是已完成 //2025-01-17 取消提交 - 如果已报工完成的工序报工状态还是已完成
if (taskDispatchDetailDO.getProcedureStatus() != 2){ if (taskDispatchDetailDO.getProcedureStatus() != 2){
taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.DEFAULT.getCode()); taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.DEFAULT.getCode());
} }
}); });
} }
} }
updateObj.setDispatchStatus(TaskDispatchStatusEnum.valueOf(updateReqVO.getActive()).getCode()); updateObj.setDispatchStatus(TaskDispatchStatusEnum.valueOf(updateReqVO.getActive()).getCode());
if (ObjectUtil.isEmpty(updateObj.getCreator())){
updateObj.setCreator(getLoginUser().getId().toString());
}
taskDispatchMapper.updateById(updateObj); taskDispatchMapper.updateById(updateObj);
// 更新子表 // 更新子表
if(operateTypeEnum != OperateTypeEnum.CANCEL_SUBMIT){ if(operateTypeEnum != OperateTypeEnum.CANCEL_SUBMIT){

View File

@ -22,7 +22,6 @@ FROM (
a.id a.id
FROM project_material_plan_boom a FROM project_material_plan_boom a
JOIN project_material_plan b ON a.project_material_plan_id = b.id JOIN project_material_plan b ON a.project_material_plan_id = b.id
JOIN base_material bm ON a.material_id = bm.id
WHERE CURDATE() >= DATE_SUB(a.boom_arrive_date, INTERVAL #{evday} DAY) WHERE CURDATE() >= DATE_SUB(a.boom_arrive_date, INTERVAL #{evday} DAY)
AND b.tenant_id = #{id} AND b.tenant_id = #{id}
and a.deleted=0 and a.deleted=0

View File

@ -63,7 +63,6 @@ FROM (
a.id a.id
FROM project_material_plan_boom a FROM project_material_plan_boom a
JOIN project_material_plan b ON a.project_material_plan_id = b.id JOIN project_material_plan b ON a.project_material_plan_id = b.id
JOIN base_material bm ON a.material_id = bm.id
WHERE CURDATE() >= DATE_SUB(a.boom_arrive_date, INTERVAL 10 DAY) WHERE CURDATE() >= DATE_SUB(a.boom_arrive_date, INTERVAL 10 DAY)
AND b.tenant_id = 2 AND b.tenant_id = 2
and a.deleted=0 and a.deleted=0

View File

@ -65,3 +65,7 @@ export const exportStorage = async (params) => {
export const procurementAndStorage = async (data) => { export const procurementAndStorage = async (data) => {
return await request.post({ url: `/heli/storage/procurementAndStorage`, data }) return await request.post({ url: `/heli/storage/procurementAndStorage`, data })
} }
// 查询入库详情
export const isPrint = async (id: number) => {
return await request.get({ url: `/heli/storage/isPrint?id=` + id })
}

View File

@ -350,6 +350,8 @@ link type="primary" size="small" :disabled="ctrView || ctrDelete"
</el-form> </el-form>
<div class="hl-footer text-center"> <div class="hl-footer text-center">
<el-button @click="() => router.go(-1)" size="large"> </el-button> <el-button @click="() => router.go(-1)" size="large"> </el-button>
<el-button @click="isPrint()" type="primary" size="large" >打印</el-button>
<el-button @click="submitForm" type="success" v-if="btnSave" size="large"> <el-button @click="submitForm" type="success" v-if="btnSave" size="large">
</el-button> </el-button>
<el-button @click="handleStatus(2)" type="primary" v-if="btnSave" size="large"> <el-button @click="handleStatus(2)" type="primary" v-if="btnSave" size="large">
@ -388,6 +390,7 @@ import materials from './materialsin.vue'
import projects from './subproject.vue' import projects from './subproject.vue'
import {Search} from "@element-plus/icons-vue"; import {Search} from "@element-plus/icons-vue";
import purchaseorderDialog from '@/views/heli/outsourcestock/purchaseorderDialog.vue' import purchaseorderDialog from '@/views/heli/outsourcestock/purchaseorderDialog.vue'
import * as StorageinApi from "@/api/heli/storagein";
const reload: any = inject('reload') const reload: any = inject('reload')
@ -450,6 +453,10 @@ const openMatForm = () => {
// formData.value.whId // formData.value.whId
matOpenFormRef.value.open(formData.value.whId,'in') matOpenFormRef.value.open(formData.value.whId,'in')
} }
const isPrint = async () => {
var newVar = await StorageApi.isPrint(query.id);
console.log(newVar)
}
const handleSelectedProjectPurchaseorder = (arr) => { const handleSelectedProjectPurchaseorder = (arr) => {
if (arr) { if (arr) {
formData.value.headerNo = arr.purchaseNo formData.value.headerNo = arr.purchaseNo

View File

@ -189,8 +189,8 @@ class="!w-260px" v-model="formData.createTime" type="date" value-format="x"
<el-checkbox label="磨床" size="large" border /> <el-checkbox label="磨床" size="large" border />
<el-checkbox label="数控1" size="large" border /> <el-checkbox label="数控1" size="large" border />
<el-checkbox label="数控2" size="large" border /> <el-checkbox label="数控2" size="large" border />
<el-checkbox label="火花" size="large" border />
<el-checkbox label="线切割" size="large" border /> <el-checkbox label="线切割" size="large" border />
<el-checkbox label="火花" size="large" border />
<el-checkbox label="刻字" size="large" border /> <el-checkbox label="刻字" size="large" border />
<el-checkbox label="网格" size="large" border /> <el-checkbox label="网格" size="large" border />
<el-checkbox label="深孔钻" size="large" border /> <el-checkbox label="深孔钻" size="large" border />