diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java index 768078f..8ae00de 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java @@ -63,7 +63,7 @@ public interface ErrorCodeConstants { ErrorCode STORAGE_LOG_NOT_EXISTS = new ErrorCode(1_003_006, "库存日志不存在"); ErrorCode STORAGE_CHECK_NOT_EXISTS = new ErrorCode(1_003_007, "库存盘点不存在"); ErrorCode STORAGE_CHECK_MAT_NOT_EXISTS = new ErrorCode(1_003_008, "盘点物料不存在"); - + ErrorCode BEFORE_STORAGE_NOT_EXISTS = new ErrorCode(1_003_009, "物料原仓库查询错误"); /************订单管理***********/ ErrorCode PROJECT_ORDER_NOT_EXISTS = new ErrorCode(1_004_001, "项目订单不存在"); /************发货管理***********/ diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/attentiontodo/vo/AttentiontodoRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/attentiontodo/vo/AttentiontodoRespVO.java index 78b268a..188056c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/attentiontodo/vo/AttentiontodoRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/attentiontodo/vo/AttentiontodoRespVO.java @@ -43,7 +43,9 @@ public class AttentiontodoRespVO { @Schema(description = "提醒周期(天)") @ExcelProperty("提醒周期(天)") private String remindtime; - + @Schema(description = "提醒天数") + @ExcelProperty("提醒天数") + private String evday; @Schema(description = "提醒人") @ExcelProperty("提醒人") private String remindman; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/attentiontodo/vo/AttentiontodoSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/attentiontodo/vo/AttentiontodoSaveReqVO.java index 83268f0..6875a35 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/attentiontodo/vo/AttentiontodoSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/attentiontodo/vo/AttentiontodoSaveReqVO.java @@ -34,6 +34,9 @@ public class AttentiontodoSaveReqVO { @Schema(description = "提醒周期(天)") private String remindtime; + @Schema(description = "提醒天数") + private String evday; + @Schema(description = "提醒人") private String remindman; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagemat/StorageMatController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagemat/StorageMatController.java index a9fdef0..c639c81 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagemat/StorageMatController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagemat/StorageMatController.java @@ -2,12 +2,18 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.storagemat; import cn.hutool.core.collection.CollUtil; import com.chanko.yunxi.mes.module.heli.controller.admin.storage.vo.StorageSaveReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO; 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.storagelog.StorageLogDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.deliverorder.DeliverOrderMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.storagelog.StorageLogNowMapper; import com.chanko.yunxi.mes.module.heli.enums.CodeEnum; +import com.chanko.yunxi.mes.module.heli.service.bdgzsomthing.bdgzsomthingService; 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.storagelog.StorageLogService; @@ -55,7 +61,12 @@ public class StorageMatController { @Resource private StorageMatService storageMatService; - + @Resource + private StorageMapper storageMapper; + @Resource + private bdgzsomthingService bdgzsomthingService; + @Resource + private StorageLogNowMapper storageLogNowMapper; @Resource private SerialNumberService serialNumberService; @@ -86,12 +97,51 @@ public class StorageMatController { @Operation(summary = "批量创建入/出库物料") @PreAuthorize("@ss.hasPermission('heli:storage-mat:create')") public CommonResult createStorageMat(@Valid @RequestBody List createReqVO,@RequestParam("stockid") Long stockid) { - storageMatService.deleteStorageMatList(stockid); + List attr3List = new ArrayList<>(); for (StorageMatSaveReqVO item : createReqVO) { item.setId(null); + if (item.getMatCode()!=null){ + attr3List.add(item.getMatCode()); + } storageMatService.createStorageMat(item); } + //如果上面插入数据没报错 + StorageDO storageDO = storageMapper.selectById(stockid); + //查询入库单,因为要删待办 + if (storageDO.getStockType()==1){ + //如果是要入库,就要删除待办了 + //查有没有这个物料 + if (CollUtil.isNotEmpty(attr3List)){ + //查找待办中有提醒的 + List bdgzsomthingDOList = bdgzsomthingService.selectSafeStorage(attr3List); + if (CollUtil.isNotEmpty(bdgzsomthingDOList)){ + //如果有这个物料在提醒,就要看这次入库有没有满足需求,如果满足了,就删除提醒 + List matCodeInDb = bdgzsomthingDOList.stream() + .map(bdgzsomthingDO::getAttr3) + .collect(Collectors.toList()); + //查出来仍然满足条件的 这部分是不需要更新的 + List storageLogNowDOS = storageLogNowMapper.selectPagesmall2(matCodeInDb); + //更新不满足安全库存小于实时库存的,即不在storageLogNowDOS里面的 + Set matCodesInStorageLog = storageLogNowDOS.stream() + .map(StorageLogNowDO::getMatCode) + .collect(Collectors.toSet()); + // 过滤bdgzsomthingDOList,只保留attr3不在matCodesInStorageLog中的元素 + List filteredList = bdgzsomthingDOList.stream() + .filter(bdgzsomthingDO -> !matCodesInStorageLog.contains(bdgzsomthingDO.getAttr3())) + .collect(Collectors.toList()); + for (bdgzsomthingDO bdgzsomthingDO : filteredList) { + //录入安全库存后修改为0 + bdgzsomthingDO.setAttr4("1"); + bdgzsomthingDO.setAttr12("0"); + bdgzsomthingService.updateById(bdgzsomthingDO); + } + } + + + } + + } return success(1L); } @@ -143,8 +193,7 @@ public class StorageMatController { @Operation(summary = "导出入/出库物料 Excel") @PreAuthorize("@ss.hasPermission('heli:storage-mat:export')") @OperateLog(type = EXPORT) - public void exportStorageMatExcel(@Valid StorageMatPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + public void exportStorageMatExcel(@Valid StorageMatPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = storageMatService.getStorageMatPage(pageReqVO); // 导出 Excel diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagemat/vo/StorageMatSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagemat/vo/StorageMatSaveReqVO.java index ae3ae4a..6794e2a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagemat/vo/StorageMatSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagemat/vo/StorageMatSaveReqVO.java @@ -22,6 +22,7 @@ public class StorageMatSaveReqVO { @NotNull(message = "物料 Id,对应 base_material表中的 Id 列不能为空") private Long matId; + private String matCode; @Schema(description = "仓库 Id,对应 wms_wh 表中的Id", requiredMode = Schema.RequiredMode.REQUIRED, example = "31860") @NotNull(message = "仓库 Id,对应 wms_wh 表中的Id不能为空") private Long whId; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/attentiontodo/AttentiontodoDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/attentiontodo/AttentiontodoDO.java index b2d39a8..2d0f957 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/attentiontodo/AttentiontodoDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/attentiontodo/AttentiontodoDO.java @@ -56,6 +56,10 @@ public class AttentiontodoDO extends BaseDO { * 提醒周期(天) */ private String remindtime; + /** + * 提醒天数 + */ + private String evday; /** * 提醒人 */ diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderSubDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderSubDO.java index c3c0e62..8b36297 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderSubDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderSubDO.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.*; import java.math.BigDecimal; @@ -89,6 +90,8 @@ public class DeliverOrderSubDO extends BaseDO { /** * 销售订单子项id */ + @TableField(exist = false) + private Long saleOrderId; private Long saleOrderSubId; /** * 销售订单编号 diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplanboom/MaterialPlanBoomDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplanboom/MaterialPlanBoomDO.java index 3110da1..460a6a5 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplanboom/MaterialPlanBoomDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplanboom/MaterialPlanBoomDO.java @@ -64,6 +64,10 @@ public class MaterialPlanBoomDO extends BaseDO { @TableField(exist = false) private String compositionName; @TableField(exist = false) + private String name; + @TableField(exist = false) private Long compositionId; + @TableField(exist = false) + private String projectMaterialPlanNo; } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplandetail/MaterialPlanDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplandetail/MaterialPlanDetailDO.java index 0895962..9c1988c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplandetail/MaterialPlanDetailDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplandetail/MaterialPlanDetailDO.java @@ -74,7 +74,8 @@ public class MaterialPlanDetailDO extends BaseDO { private String projectMaterialPlanNo; @TableField(exist = false) private String named; - + @TableField(exist = false) + private String name; private String creator; } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDO.java index 945dabb..cb4fb7b 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDO.java @@ -93,7 +93,8 @@ public class TaskDispatchDO extends BaseDO { @TableField(exist = false) private String projectSubCode; - + @TableField(exist = false) + private String name; @TableField(exist = false) private String planCode; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/bdgzsomthing/bdgzsomthingMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/bdgzsomthing/bdgzsomthingMapper.java index ad918f1..0c7c700 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/bdgzsomthing/bdgzsomthingMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/bdgzsomthing/bdgzsomthingMapper.java @@ -6,6 +6,7 @@ import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.module.heli.controller.admin.bdgzsomthing.vo.bdgzsomthingPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; +import com.github.yulichang.query.MPJLambdaQueryWrapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,35 +22,80 @@ public interface bdgzsomthingMapper extends BaseMapperX { List selectPagelist(bdgzsomthingDO BdgzsomthingDO); default PageResult selectPage(bdgzsomthingPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .betweenIfPresent(bdgzsomthingDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(bdgzsomthingDO::getClick, reqVO.getClick()) - .eqIfPresent(bdgzsomthingDO::getClickid, reqVO.getClickid()) - .likeIfPresent(bdgzsomthingDO::getThingname, reqVO.getThingname()) - .eqIfPresent(bdgzsomthingDO::getThings, reqVO.getThings()) - .eqIfPresent(bdgzsomthingDO::getLevel, reqVO.getLevel()) -// .likeIfPresent(bdgzsomthingDO::getShowname, reqVO.getShowname()) - .eqIfPresent(bdgzsomthingDO::getDborgz, reqVO.getDborgz()) - .eqIfPresent(bdgzsomthingDO::getYesorno, reqVO.getYesorno()) - .eqIfPresent(bdgzsomthingDO::getAttr1, reqVO.getAttr1()) - .eqIfPresent(bdgzsomthingDO::getAttr2, reqVO.getAttr2()) - .eqIfPresent(bdgzsomthingDO::getAttr3, reqVO.getAttr3()) - .eqIfPresent(bdgzsomthingDO::getAttr4, "0") - .eqIfPresent(bdgzsomthingDO::getAttr5, reqVO.getAttr5()) - .betweenIfPresent(bdgzsomthingDO::getClicktime, reqVO.getClicktime()) - .betweenIfPresent(bdgzsomthingDO::getNowtime, reqVO.getNowtime()) - .eqIfPresent(bdgzsomthingDO::getAttr6, reqVO.getAttr6()) - .eqIfPresent(bdgzsomthingDO::getAttr7, reqVO.getAttr7()) - .eqIfPresent(bdgzsomthingDO::getAttr8, reqVO.getAttr8()) - .eqIfPresent(bdgzsomthingDO::getAttr9, reqVO.getAttr9()) - .eqIfPresent(bdgzsomthingDO::getAttr10, reqVO.getAttr10()) - .eqIfPresent(bdgzsomthingDO::getAttr11, reqVO.getAttr11()) - .eqIfPresent(bdgzsomthingDO::getAttr12, reqVO.getAttr12()) - .eqIfPresent(bdgzsomthingDO::getAttr13, reqVO.getAttr13()) - .eqIfPresent(bdgzsomthingDO::getAttr14, reqVO.getAttr14()) - .eqIfPresent(bdgzsomthingDO::getAttr15, reqVO.getAttr15()) - .ne(bdgzsomthingDO::getAttr12,1) - .orderByDesc(bdgzsomthingDO::getId)); + MPJLambdaQueryWrapper query = new MPJLambdaQueryWrapper<>(); + if (reqVO.getCreateTime() != null) { + query.apply("create_time BETWEEN {0} AND {1}", reqVO.getCreateTime()[0], reqVO.getCreateTime()[1]); + } + + if (reqVO.getClick() != null) { + query.eq(bdgzsomthingDO::getClick, reqVO.getClick()); + } + + if (reqVO.getClickid() != null) { + query.eq(bdgzsomthingDO::getClickid, reqVO.getClickid()); + } + + if (reqVO.getThingname() != null) { + query.like(bdgzsomthingDO::getThingname, reqVO.getThingname()); + } + + if (reqVO.getThings() != null) { + query.eq(bdgzsomthingDO::getThings, reqVO.getThings()); + } + + if (reqVO.getLevel() != null) { + query.eq(bdgzsomthingDO::getLevel, reqVO.getLevel()); + } + + if (reqVO.getDborgz() != null) { + query.eq(bdgzsomthingDO::getDborgz, reqVO.getDborgz()); + } + + if (reqVO.getYesorno() != null) { + query.eq(bdgzsomthingDO::getYesorno, reqVO.getYesorno()); + } + + if (reqVO.getAttr1() != null) { + query.eq(bdgzsomthingDO::getAttr1, reqVO.getAttr1()); + } + +// ... 同样的逻辑应用于其他属性 ... + + if (reqVO.getAttr15() != null) { + query.eq(bdgzsomthingDO::getAttr15, reqVO.getAttr15()); + } + + query.ne(bdgzsomthingDO::getAttr12, "1"); + query.orderByDesc(bdgzsomthingDO::getId); +// return selectPage(reqVO, new LambdaQueryWrapperX() +// .betweenIfPresent(bdgzsomthingDO::getCreateTime, reqVO.getCreateTime()) +// .eqIfPresent(bdgzsomthingDO::getClick, reqVO.getClick()) +// .eqIfPresent(bdgzsomthingDO::getClickid, reqVO.getClickid()) +// .likeIfPresent(bdgzsomthingDO::getThingname, reqVO.getThingname()) +// .eqIfPresent(bdgzsomthingDO::getThings, reqVO.getThings()) +// .eqIfPresent(bdgzsomthingDO::getLevel, reqVO.getLevel()) +//// .likeIfPresent(bdgzsomthingDO::getShowname, reqVO.getShowname()) +// .eqIfPresent(bdgzsomthingDO::getDborgz, reqVO.getDborgz()) +// .eqIfPresent(bdgzsomthingDO::getYesorno, reqVO.getYesorno()) +// .eqIfPresent(bdgzsomthingDO::getAttr1, reqVO.getAttr1()) +// .eqIfPresent(bdgzsomthingDO::getAttr2, reqVO.getAttr2()) +// .eqIfPresent(bdgzsomthingDO::getAttr3, reqVO.getAttr3()) +// .eqIfPresent(bdgzsomthingDO::getAttr4, "0") +// .eqIfPresent(bdgzsomthingDO::getAttr5, reqVO.getAttr5()) +// .betweenIfPresent(bdgzsomthingDO::getClicktime, reqVO.getClicktime()) +// .betweenIfPresent(bdgzsomthingDO::getNowtime, reqVO.getNowtime()) +// .eqIfPresent(bdgzsomthingDO::getAttr6, reqVO.getAttr6()) +// .eqIfPresent(bdgzsomthingDO::getAttr7, reqVO.getAttr7()) +// .eqIfPresent(bdgzsomthingDO::getAttr8, reqVO.getAttr8()) +// .eqIfPresent(bdgzsomthingDO::getAttr9, reqVO.getAttr9()) +// .eqIfPresent(bdgzsomthingDO::getAttr10, reqVO.getAttr10()) +// .eqIfPresent(bdgzsomthingDO::getAttr11, reqVO.getAttr11()) +// .eqIfPresent(bdgzsomthingDO::getAttr12, reqVO.getAttr12()) +// .eqIfPresent(bdgzsomthingDO::getAttr13, reqVO.getAttr13()) +// .eqIfPresent(bdgzsomthingDO::getAttr14, reqVO.getAttr14()) +// .eqIfPresent(bdgzsomthingDO::getAttr15, reqVO.getAttr15()) +// .orderByDesc(bdgzsomthingDO::getId)); + return selectPage(reqVO,query); } void updatebdgzsomthingbyid(bdgzsomthingDO BdgzsomthingDO); @@ -61,11 +107,18 @@ public interface bdgzsomthingMapper extends BaseMapperX { //00 int deletebdgzsByThings( @Param("things") String things); List selecteqint(bdgzsomthingDO qcObject); + //查询之前删除了,但是没录入对应表单数据的 + List selecteqintDeletedButNoOver(bdgzsomthingDO qcObject); + //查询之前有的历史数据 + List selecteqintNoDeletedAndNoOver(bdgzsomthingDO qcObject); List selecteqintq(bdgzsomthingDO qcObject); List selecteqintone(bdgzsomthingDO qcObject); bdgzsomthingDO selecteqintzq(bdgzsomthingDO qcObject); - + List selecteqintAttr12IsNull(@Param("attr3")String attr3,@Param("things")String things); + void updateYnAndAttr4(@Param("id")String id,@Param("attr4")String attr4,@Param("yn")String yn); int deleteByIdNew(@Param("id") Long id); int deleteByIdNew1(@Param("id") Long id); void deleteOrder(bdgzsomthingDO BdgzsomthingDO); + + List selectSafeStorage(@Param("attr3List") List attr3List); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java index b75379c..75b6645 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java @@ -7,6 +7,7 @@ import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO; 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.plansub.PlanSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; @@ -15,6 +16,7 @@ import com.chanko.yunxi.mes.module.heli.enums.ProcessBomStatusEnum; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo.*; +import org.apache.ibatis.annotations.Param; import org.springframework.util.StringUtils; /** @@ -66,6 +68,8 @@ public interface MaterialPlanBoomMapper extends BaseMapperX return selectPage(reqVO,query); } + List selectafterten(@Param("id") Long txrid, @Param("evday") String evday); + // default PageResult selectPage(MaterialPlanBoomPageReqVO reqVO) { // return selectPage(reqVO, new LambdaQueryWrapperX() // .eqIfPresent(MaterialPlanBoomDO::getId, reqVO.getId()) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplandetail/MaterialPlanDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplandetail/MaterialPlanDetailMapper.java index 004db6d..6c1fbc2 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplandetail/MaterialPlanDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplandetail/MaterialPlanDetailMapper.java @@ -16,6 +16,7 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.mysql.cj.x.protobuf.MysqlxDatatypes; import org.apache.ibatis.annotations.Mapper; import com.chanko.yunxi.mes.module.heli.controller.admin.materialplandetail.vo.*; +import org.apache.ibatis.annotations.Param; import org.springframework.util.StringUtils; /** @@ -78,7 +79,7 @@ public interface MaterialPlanDetailMapper extends BaseMapperX selectafterten(Long id); + List selectafterten(@Param("id") Long id, @Param("evday") String evday); List selectafterten1(); } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/pgmaster/PgMasterLineMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/pgmaster/PgMasterLineMapper.java index 7583c39..1eb3eba 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/pgmaster/PgMasterLineMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/pgmaster/PgMasterLineMapper.java @@ -87,7 +87,6 @@ public interface PgMasterLineMapper extends BaseMapperX { query.orderByDesc(PgMasterLineDO::getPgNumber); }else{ query.orderByAsc(PgMasterLineDO::getPgNumber); - // query.orderByDesc(PlanDO::getId); } query.eq(reqVO.getDetilUser() != null&&reqVO.getDetilUser() != 0, PgMasterLineDO::getDetilUser, reqVO.getDetilUser()) .eq(reqVO.getPgType() != null, PgMasterLineDO::getPgType, reqVO.getPgType()) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java index c58bec6..0f84dc9 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java @@ -47,9 +47,9 @@ public interface ProcessDesignMapper extends BaseMapperX { .leftJoin("(select progress,process_design_id,blueprint_link FROM pro_process_design_progress where id in (select max(id) FROM pro_process_design_progress GROUP BY process_design_id) ) z on z.process_design_id = t.id") .disableSubLogicDel(); if(reqVO.getPgType()!=null && reqVO.getPgType() == 0){ - query.orderByAsc(ProjectOrderDO::getCode); + query.orderByAsc(PlanDO::getPlanNo); }else { - query.orderByDesc(ProjectOrderDO::getCode); + query.orderByDesc(PlanDO::getPlanNo); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java index d2718ca..343eb27 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java @@ -53,6 +53,14 @@ public interface ProjectOrderMapper extends BaseMapperX { return selectPage(reqVO, query); } + default ProjectOrderDO selectProjectOrderById(Long id){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(ProjectOrderDO.class) + .select("a.nickname as businessManName") + .leftJoin(AdminUserDO.class,"a",AdminUserDO::getId,ProjectOrderDO::getBusinessMan) + .eq(ProjectOrderDO::getId,id); + return selectOne(query); + } default PageResult selectPage(ProjectOrderPageReqVO reqVO) { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogNowMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogNowMapper.java index 49129fc..e9a6567 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogNowMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogNowMapper.java @@ -28,6 +28,7 @@ public interface StorageLogNowMapper extends BaseMapperX { List selectPagesmall(Long id); List selectPagesmall1(); + List selectPagesmall2(List matCode); List selectPagesmallbyid(String id); default PageResult selectPage(StorageLogPageReqVO reqVO) { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagemat/StorageMatMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagemat/StorageMatMapper.java index 586ce2f..4a9c380 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagemat/StorageMatMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagemat/StorageMatMapper.java @@ -74,6 +74,7 @@ public interface StorageMatMapper extends BaseMapperX { .disableSubLogicDel() .eq(StorageMatDO::getProjectNo,subId) .eq(StorageMatDO::getMatId,materialId) + .eq(StorageDO::getStatus,2) .eq(StorageDO::getStockType,"1") .eq(StorageDO::getStockInType,"1") ; @@ -92,6 +93,7 @@ public interface StorageMatMapper extends BaseMapperX { .disableSubLogicDel() .eq(StorageMatDO::getProjectNo,subId) .eq(StorageMatDO::getMatId,materialId) + .eq(StorageDO::getStatus,2) .eq(StorageDO::getStockType,"2") .eq(StorageDO::getStockInType,"5") ; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/manager/CrossOrderManager.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/manager/CrossOrderManager.java index b122f95..5c04e05 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/manager/CrossOrderManager.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/manager/CrossOrderManager.java @@ -14,6 +14,7 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDis import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansub.PlanSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantask.PlanTaskDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantaskbom.PlanTaskBomDO; @@ -115,6 +116,7 @@ public class CrossOrderManager { eq(ProjectOrderDO::getId, projectOrderId); last("LIMIT 1 FOR UPDATE"); }}); + PlanDO planDO = planService.getPlanByProjectId(Long.valueOf(projectOrderId)); // 查询关联子项 List projectOrderSubDOList = projectOrderSubMapper.selectListByProjectOrderId(projectOrderDO.getId()); @@ -126,6 +128,7 @@ public class CrossOrderManager { .eq(DeliverOrderDO::getDeliverStatus, DeliverOrderStatusEnum.DELIVER.getCode()) .in(DeliverOrderSubDO::getSaleOrderSubId, projectOrderSubDOList.stream().map(ProjectOrderSubDO::getId).collect(Collectors.toSet())); List historyDeliveredSubList = deliverOrderSubMapper.selectList(historyDeliveredSubQuery); + //如果历史没发过 if(historyDeliveredSubList.isEmpty()) return; Map> historyDeliveredSubsGroupBySaleSubId = historyDeliveredSubList.stream().collect(Collectors.groupingBy(DeliverOrderSubDO::getSaleOrderSubId)); @@ -139,6 +142,8 @@ public class CrossOrderManager { if(allDone){ projectOrderDO.setDeliveryStatus(ProjectOrderDeliverStatusEnum.ALL.getCode()); projectOrderDO.setDeliveryDate(deliverDate); + planDO.setStatus(3); + planService.updateById(planDO); }else{ projectOrderDO.setDeliveryStatus(ProjectOrderDeliverStatusEnum.PART.getCode()); } @@ -146,6 +151,63 @@ public class CrossOrderManager { } + } + /** + * 刷新项目订单发货状态 + * @param deliverOrderSubs + */ + @Transactional(rollbackFor = Exception.class) + public void refreshProjectOrderDeliverStatusNew( List deliverOrderSubs,LocalDateTime deliverDate) { + //按销售订单号分组: + Map> groupBySaleId = deliverOrderSubs.stream().collect(Collectors.groupingBy(DeliverOrderSubDO::getSaleOrderId)); + for (Map.Entry> projectIdEntity : groupBySaleId.entrySet()) { + ProjectOrderDO projectOrderDO = projectOrderMapper.selectOne(new LambdaQueryWrapper() {{ + eq(ProjectOrderDO::getId, projectIdEntity.getKey()); + last("LIMIT 1 FOR UPDATE"); + }}); + PlanDO planDO = planService.getPlanByProjectId(Long.valueOf(projectIdEntity.getKey())); + + // 查询关联子项 + List projectOrderSubDOList = projectOrderSubMapper.selectListByProjectOrderId(projectOrderDO.getId()); + + // 查询发货记录 + MPJLambdaWrapper historyDeliveredSubQuery = new MPJLambdaWrapper<>(); + historyDeliveredSubQuery.selectAll(DeliverOrderSubDO.class) + .leftJoin(DeliverOrderDO.class, DeliverOrderDO::getId, DeliverOrderSubDO::getDeliveryOrderId) + .eq(DeliverOrderDO::getDeliverStatus, DeliverOrderStatusEnum.DELIVER.getCode()) + .in(DeliverOrderSubDO::getSaleOrderSubId, projectOrderSubDOList.stream().map(ProjectOrderSubDO::getId).collect(Collectors.toSet())); + List historyDeliveredSubList = deliverOrderSubMapper.selectList(historyDeliveredSubQuery); + //如果历史没发过 以本次为准 + if(historyDeliveredSubList.isEmpty()) { + historyDeliveredSubList = projectIdEntity.getValue(); + }else { + historyDeliveredSubList.addAll(projectIdEntity.getValue()); + } + Map> historyDeliveredSubsGroupBySaleSubId = historyDeliveredSubList.stream().collect(Collectors.groupingBy(DeliverOrderSubDO::getSaleOrderSubId)); + + // 考虑变更订单情况 只需判断历史发货是否大于等于订单子项数量 + boolean allDone = projectOrderSubDOList.stream().allMatch(projectOrderSubDO -> { + List historySubList = historyDeliveredSubsGroupBySaleSubId.get(projectOrderSubDO.getId()); + int historyDeliveredAmount = historySubList == null || historySubList.isEmpty() ? 0 : historySubList.stream().mapToInt(DeliverOrderSubDO::getAmount).sum(); + return historyDeliveredAmount >= projectOrderSubDO.getAmount(); + }); + + if(allDone){ + projectOrderDO.setDeliveryStatus(ProjectOrderDeliverStatusEnum.ALL.getCode()); + projectOrderDO.setDeliveryDate(deliverDate); + planDO.setStatus(3); + planService.updateById(planDO); + }else{ + projectOrderDO.setDeliveryStatus(ProjectOrderDeliverStatusEnum.PART.getCode()); + } + projectOrderMapper.updateById(projectOrderDO); + } + // 锁定订单 + for (DeliverOrderSubDO deliverOrderSubDO : deliverOrderSubs) { + + + } + } /** diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/attentiontodo/AttentiontodoServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/attentiontodo/AttentiontodoServiceImpl.java index 2f529b1..6951753 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/attentiontodo/AttentiontodoServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/attentiontodo/AttentiontodoServiceImpl.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.heli.service.attentiontodo; +import cn.hutool.core.util.ObjectUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -58,12 +59,16 @@ public class AttentiontodoServiceImpl implements AttentiontodoService { attentiontodoMapper.deleteall(updateReqVO); if(updateReqVO.getTaskDispatchDetails()!=null&&updateReqVO.getTaskDispatchDetails().size()>0) { Map mapp = (Map) updateReqVO.getTaskDispatchDetails().get(0); - if (mapp.get("remindman") != null) { +// if (mapp.get("remindman") != null) { for (Object taskDispatchDetail : updateReqVO.getTaskDispatchDetails()) { Map map = (Map) taskDispatchDetail; Object remindmanValue = map.get("remindman"); Object type = map.get("type"); - updateReqVO.setAttr4(remindmanValue.toString()); + if ("1".equals(type.toString())&&remindmanValue==null){ + updateReqVO.setAttr4(null); + }else { + updateReqVO.setAttr4(remindmanValue.toString()); + } updateReqVO.setAttr5(type.toString()); updateReqVO.setAttr2(id + ""); updateReqVO.setId(null); @@ -71,7 +76,7 @@ public class AttentiontodoServiceImpl implements AttentiontodoService { attentiontodoMapper.insert(attentiontodo); } } - } +// } } @Override diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/bdgzsomthing/bdgzsomthingService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/bdgzsomthing/bdgzsomthingService.java index 11fe1fe..2e483a9 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/bdgzsomthing/bdgzsomthingService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/bdgzsomthing/bdgzsomthingService.java @@ -63,4 +63,6 @@ public interface bdgzsomthingService { void selectds(); public void selectSafeStorageAndDeliverOneYear(); + public List selectSafeStorage(List attr3List); + public int updateById(bdgzsomthingDO entity); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/bdgzsomthing/bdgzsomthingServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/bdgzsomthing/bdgzsomthingServiceImpl.java index 1761ef5..8972877 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/bdgzsomthing/bdgzsomthingServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/bdgzsomthing/bdgzsomthingServiceImpl.java @@ -1,6 +1,7 @@ package com.chanko.yunxi.mes.module.heli.service.bdgzsomthing; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.useragent.UserAgentUtil; import cn.hutool.system.SystemUtil; import com.alibaba.fastjson.JSON; @@ -10,6 +11,8 @@ import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils; import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.attentiontodo.AttentiontodoDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO; +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.pgmaster.PgMasterLineDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO; @@ -22,6 +25,8 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.weiXinXiaoXi.WeixinXiaoXi import com.chanko.yunxi.mes.module.heli.dal.dataobject.zjpgmaster.ZjPgMasterLineDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.deliverorder.DeliverOrderMapper; +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.materialplandetail.MaterialPlanDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.pgmaster.PgMasterMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.plan.PlanMapper; @@ -31,7 +36,9 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetai import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchMapper; import com.chanko.yunxi.mes.module.heli.enums.TaskDispatchTypeEnum; import com.chanko.yunxi.mes.module.heli.service.attentiontodo.AttentiontodoService; +import com.chanko.yunxi.mes.module.heli.service.materialplan.MaterialPlanService; import com.chanko.yunxi.mes.module.system.api.user.AdminUserApi; +import com.chanko.yunxi.mes.module.system.api.user.dto.AdminUserRespDTO; import com.chanko.yunxi.mes.module.system.controller.admin.user.UserController; import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.chanko.yunxi.mes.module.system.service.user.AdminUserService; @@ -49,6 +56,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; @@ -60,6 +68,7 @@ import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; import com.chanko.yunxi.mes.module.heli.controller.admin.bdgzsomthing.vo.*; import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO; @@ -106,6 +115,11 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { private PgMasterMapper pgMasterMapper; @Resource private ProjectOrderMapper projectOrderMapper; + + @Resource + private MaterialPlanBoomMapper materialPlanBoomMapper; + @Resource + private MaterialPlanMapper materialPlanMapper; @Override public Long createbdgzsomthing(bdgzsomthingSaveReqVO createReqVO) { // 插入 @@ -216,6 +230,7 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { public List getbdgzsomthingPagelist(bdgzsomthingPageReqVO pageReqVO) { bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO(); BdgzsomthingDO.setClick(pageReqVO.getClick()); + return bdgzsomthingMapper.selectPagelist(BdgzsomthingDO); } @Override @@ -227,6 +242,8 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { @Override public void selectds() { + + //删除质检,生产,装配,设计任务创建时间小于今天的不包含预期的内容 bdgzsomthingMapper.updatayesterday(); // System.out.println("执行定时任务:" + System.currentTimeMillis() / 1000); @@ -285,12 +302,12 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { LocalDateTime projectEndTime = deliverOrderDO.getProjectEndTime(); LocalDate projectEndDay = projectEndTime.toLocalDate(); if (today.equals(projectEndDay.minusDays(1))) { - BdgzsomthingDO.setThings("编号:"+deliverOrderDO.getCode()+"生产任务单明天到期");//事件名称 + BdgzsomthingDO.setThings("生产任务单编号:"+deliverOrderDO.getCode()+" 工序:"+deliverOrderDO.getName()+",明天到期");//事件名称 } else if (today.equals(projectEndDay)) { - BdgzsomthingDO.setThings("编号:"+deliverOrderDO.getCode()+"生产任务单今日到期");//事件名称 + BdgzsomthingDO.setThings("生产任务单编号:"+deliverOrderDO.getCode()+" 工序:"+deliverOrderDO.getName()+",今日到期");//事件名称 System.out.println("projectEndTime 是今天"); } else if (today.isAfter(projectEndDay)) { - BdgzsomthingDO.setThings("编号:"+deliverOrderDO.getCode()+"生产任务单已逾期");//事件名称 + BdgzsomthingDO.setThings("生产任务单编号:"+deliverOrderDO.getCode()+" 工序:"+deliverOrderDO.getName()+",已逾期");//事件名称 }else{ BdgzsomthingDO.setAttr4("1"); } @@ -304,7 +321,18 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { else if(attentiontodoRespVO.getAttr5().equals("2")){ BdgzsomthingDO.setDborgz("关注"); } - BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());//提醒人 + if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())){ + TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectOne(new LambdaQueryWrapper().eq(TaskDispatchDO::getCode, deliverOrderDO.getCode())); + if (ObjectUtil.isNotEmpty(taskDispatchDO)){ + AdminUserDO user = adminUserService.getUser(Long.valueOf(taskDispatchDO.getCreator())); + if (ObjectUtil.isNotEmpty(user)){ + BdgzsomthingDO.setClick(user.getNickname()); + } + } + + }else { + BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4()); + }//提醒人 if(attentiontodoRespVO.getLevel().equals("1")){ BdgzsomthingDO.setLevel("紧急"); } @@ -321,7 +349,7 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { //去重查询,重复则不加 List selecteqint = bdgzsomthingMapper.selecteqint(BdgzsomthingDO); - + System.out.println("生产任务单"+BdgzsomthingDO); if(selecteqint.size()>0){ }else{ @@ -374,11 +402,11 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { LocalDateTime projectEndTime = deliverOrderDO.getProjectEndTime(); LocalDate projectEndDay = projectEndTime.toLocalDate(); if (today5.equals(projectEndDay.minusDays(1))) { - BdgzsomthingDO.setThings("编号:"+deliverOrderDO.getCode()+"装配任务单明天到期");//事件名称 + BdgzsomthingDO.setThings("装配任务单编号:"+deliverOrderDO.getCode()+" 工序:"+deliverOrderDO.getName()+",明天到期");//事件名称 } else if (today5.equals(projectEndDay)) { - BdgzsomthingDO.setThings("编号:"+deliverOrderDO.getCode()+"装配任务单今日到期");//事件名称 + BdgzsomthingDO.setThings("装配任务单编号:"+deliverOrderDO.getCode()+" 工序:"+deliverOrderDO.getName()+",今日到期");//事件名称 } else if (today5.isAfter(projectEndDay)) { - BdgzsomthingDO.setThings("编号:"+deliverOrderDO.getCode()+"装配任务单已逾期");//事件名称 + BdgzsomthingDO.setThings("装配任务单编号:"+deliverOrderDO.getCode()+" 工序:"+deliverOrderDO.getName()+",已逾期");//事件名称 }else{ BdgzsomthingDO.setAttr4("1"); } @@ -392,7 +420,17 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { else if(attentiontodoRespVO.getAttr5().equals("2")){ BdgzsomthingDO.setDborgz("关注"); } - BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());//提醒人 + if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())){ + TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectOne(new LambdaQueryWrapper().eq(TaskDispatchDO::getCode, deliverOrderDO.getCode())); + if (ObjectUtil.isNotEmpty(taskDispatchDO)){ + AdminUserDO user = adminUserService.getUser(Long.valueOf(taskDispatchDO.getCreator())); + if (ObjectUtil.isNotEmpty(user)){ + BdgzsomthingDO.setClick(user.getNickname()); + } + } + }else { + BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4()); + }//提醒人 if(attentiontodoRespVO.getLevel().equals("1")){ BdgzsomthingDO.setLevel("紧急"); } @@ -687,7 +725,15 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { else if(attentiontodoRespVO.getAttr5().equals("2")){ BdgzsomthingDO.setDborgz("关注"); } - BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());//提醒人 + if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())){ + AdminUserDO user = adminUserService.getUser(Long.valueOf(deliverOrderDO.getCreator())); + if (ObjectUtil.isNotEmpty(user)){ + BdgzsomthingDO.setClick(user.getNickname()); + } + + }else { + BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4()); + }//提醒人 if(attentiontodoRespVO.getLevel().equals("1")){ BdgzsomthingDO.setLevel("紧急"); } @@ -731,6 +777,7 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { attentiontodoDO.setAttr5("1"); attentiontodoDO.setAttr4(userApi.getUser( Long.parseLong(storageLogNowDO.getCreator())).getNickname()); //改对应 attentiontodoDO.setLevel("1"); + attentiontodoDO.setEvday("10"); attentiontodookddfh9.add(attentiontodoDO); @@ -756,13 +803,15 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { for (AttentiontodoDO attentiontodoRespVO : attentiontodookddfh9) { - List selectafterten = materialPlanDetailMapper.selectafterten(attentiontodoRespVO.getTxrid()); + List selectafterten = materialPlanDetailMapper.selectafterten(attentiontodoRespVO.getTxrid(),attentiontodoRespVO.getEvday()); + List selectafterten1 = materialPlanBoomMapper.selectafterten(attentiontodoRespVO.getTxrid(), attentiontodoRespVO.getEvday()); + { - for (MaterialPlanDetailDO deliverOrderDO : selectafterten) { + for (MaterialPlanDetailDO materialPlanDetailDO : selectafterten) { bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO(); BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称 BdgzsomthingDO.setAttr4("0");//是否点击 - BdgzsomthingDO.setThings("计划单号:"+deliverOrderDO.getProjectMaterialPlanNo()+"货物临近到货日期");//事件名称 + BdgzsomthingDO.setThings("计划单号:"+materialPlanDetailDO.getProjectMaterialPlanNo()+" 物料:"+materialPlanDetailDO.getName()+",临近到货日期");//事件名称 BdgzsomthingDO.setAttr2(null);//因为不用跳转所以为null BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期 BdgzsomthingDO.setTenantId(attentiontodoRespVO.getTxrid()); @@ -773,7 +822,18 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { else if(attentiontodoRespVO.getAttr5().equals("2")){ BdgzsomthingDO.setDborgz("关注"); } - BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());//提醒人 + if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())){ + MaterialPlanDO planDO = materialPlanMapper.selectOne(new LambdaQueryWrapper().eq(MaterialPlanDO::getProjectMaterialPlanNo, materialPlanDetailDO.getProjectMaterialPlanNo())); + if (ObjectUtil.isNotEmpty(planDO)){ + 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("紧急"); } @@ -785,18 +845,70 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { } BdgzsomthingDO.setYesorno("0");//是否点击 - BdgzsomthingDO.setAttr3(deliverOrderDO.getProjectMaterialPlanNo());//获取数据当前表的id 改 + BdgzsomthingDO.setAttr3(materialPlanDetailDO.getProjectMaterialPlanNo());//获取数据当前表的id 改 BdgzsomthingDO.setShowname(null);//获取数据当前表的创建事件 改 //去重查询,重复则不加 - List selecteqint = bdgzsomthingMapper.selecteqintone(BdgzsomthingDO); +// List selecteqint = bdgzsomthingMapper.selecteqintone(BdgzsomthingDO); +// +// +// if(selecteqint.size()>0){ - - if(selecteqint.size()>0){ - - }else{ +// }else{ //插入方法 bdgzsomthingMapper.insert(BdgzsomthingDO); +// } + } + + for (MaterialPlanBoomDO materialPlanBoomDO : selectafterten1) { + bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO(); + BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称 + BdgzsomthingDO.setAttr4("0");//是否点击 + BdgzsomthingDO.setThings("计划单号:"+materialPlanBoomDO.getProjectMaterialPlanNo()+" 加工件:"+materialPlanBoomDO.getName()+",临近到货日期");//事件名称 + BdgzsomthingDO.setAttr2(null);//因为不用跳转所以为null + BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期 + BdgzsomthingDO.setTenantId(attentiontodoRespVO.getTxrid()); +// BdgzsomthingDO.setShowname(LocalDateTime.now());//比较创建时间,不用单独填写 + if(attentiontodoRespVO.getAttr5().equals("1")){//提醒状态 + BdgzsomthingDO.setDborgz("待办"); } + else if(attentiontodoRespVO.getAttr5().equals("2")){ + BdgzsomthingDO.setDborgz("关注"); + } + if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())){ + MaterialPlanDO planDO = materialPlanMapper.selectOne(new LambdaQueryWrapper().eq(MaterialPlanDO::getProjectMaterialPlanNo, materialPlanBoomDO.getProjectMaterialPlanNo())); + if (ObjectUtil.isNotEmpty(planDO)){ + 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.setYesorno("0");//是否点击 + + BdgzsomthingDO.setAttr3(materialPlanBoomDO.getProjectMaterialPlanNo());//获取数据当前表的id 改 + BdgzsomthingDO.setShowname(null);//获取数据当前表的创建事件 改 + //去重查询,重复则不加 +// List selecteqint = bdgzsomthingMapper.selecteqintone(BdgzsomthingDO); + + +// if(selecteqint.size()>0){ +// +// }else{ + //插入方法 + bdgzsomthingMapper.insert(BdgzsomthingDO); +// } } } } @@ -811,8 +923,16 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { + } + public int updateById(bdgzsomthingDO entity){ + return bdgzsomthingMapper.updateById(entity); + } + + public List selectSafeStorage(List attr3List){ + return bdgzsomthingMapper.selectSafeStorage(attr3List); + } /** *功能描述 安全库存和发货超一年 * @param @@ -820,6 +940,7 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { *@Author lyw *@Date 2025-02-08 15:24 */ + @Transactional() public void selectSafeStorageAndDeliverOneYear(){ //如果有设置了提醒周期的 List safeStorage = attentiontodoMapper.selectListByEvent("库存低于安全库存"); @@ -851,13 +972,7 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { attentiontodoDO.setLevel("1"); attentiontodook.add(attentiontodoDO); } - - - - } - - for (AttentiontodoDO attentiontodoRespVO : attentiontodook) { List pageResult = storageLogNowMapper.selectPagesmall(attentiontodoRespVO.getTxrid());//查询符合条件的值 { @@ -889,25 +1004,30 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { BdgzsomthingDO.setAttr4("0");//是否点击 BdgzsomthingDO.setAttr3(storageLogNowDO.getId().toString());//获取数据当前表的id 改 BdgzsomthingDO.setShowname(storageLogNowDO.getCreateTime());//获取数据当前表的创建事件 改 - //去重查询,重复则不加 - List selecteqint = bdgzsomthingMapper.selecteqint(BdgzsomthingDO); + //查之前没有达到安全库存的数据 + List selecteqint = bdgzsomthingMapper.selecteqintDeletedButNoOver(BdgzsomthingDO); if(CollUtil.isEmpty(selecteqint)){ - //插入方法 - bdgzsomthingMapper.insert(BdgzsomthingDO); + // + List bdgzsomthingDOList = bdgzsomthingMapper.selecteqintNoDeletedAndNoOver(BdgzsomthingDO); + if (!CollUtil.isNotEmpty(bdgzsomthingDOList)){ + //插入方法 + bdgzsomthingMapper.insert(BdgzsomthingDO); + } + }else{ if (hasRemindTimeSafeStorage){ LocalDate today = LocalDate.now(); - List updateBatch = new ArrayList<>(); +// List updateBatch = new ArrayList<>(); for (bdgzsomthingDO bdgzsomthingDO : selecteqint) { LocalDate updatetime = bdgzsomthingDO.getUpdateTime().toLocalDate(); // 计算两个日期之间的天数差 long daysBetween = ChronoUnit.DAYS.between(updatetime, today); if (daysBetween == Long.valueOf(remindTimeSafe)){ - bdgzsomthingDO.setAttr12("0"); - updateBatch.add(bdgzsomthingDO); + bdgzsomthingMapper.updateYnAndAttr4(bdgzsomthingDO.getId().toString(),"0","0"); +// updateBatch.add(bdgzsomthingDO); } } - bdgzsomthingMapper.updateBatch(updateBatch); +// bdgzsomthingMapper.updateBatch(updateBatch); } } @@ -920,76 +1040,158 @@ public class bdgzsomthingServiceImpl implements bdgzsomthingService { // List pageResult = storageLogNowMapper.selectPagesmall();//查询符合条件的值 List attentiontodook3 = attentiontodoService.getAttentiontodolistdaiban(3); - if (attentiontodook3.size()<1){ - - List pageResult = deliverOrderMapper.selectPagemyn1();//查询符合条件的值 - for (DeliverOrderDO storageLogNowDO : pageResult) { - AttentiontodoDO attentiontodoDO = new AttentiontodoDO(); - attentiontodoDO.setEvent("订单发货满一年"); - attentiontodoDO.setAttr5("1"); - attentiontodoDO.setAttr4(userApi.getUser( storageLogNowDO.getCustomerId()).getNickname()); - attentiontodoDO.setLevel("1"); - attentiontodookddfh.add(attentiontodoDO); - - - } - + boolean hasDbPerson = true; + if (CollUtil.isEmpty(attentiontodook3)){ + //如果待办人员配置为空 + hasDbPerson = false; } +// if (attentiontodook3.size()<1){ +// //如果没有配置待办人员: +// List pageResult = deliverOrderMapper.selectPagemyn1();//查询符合条件的值 +// Map> groupedBySale = pageResult.stream() +// .filter(order -> order.getSaleOrderIds() != null && !order.getSaleOrderIds().isEmpty()) // 过滤掉msd为空的条目 +// .collect(Collectors.groupingBy(DeliverOrderDO::getSaleOrderIds)); +// +// groupedBySale.forEach((ids,list)->{ +// AdminUserRespDTO user = userApi.getUser(list.get(0).get()); +// if (user != null ){ +// AttentiontodoDO attentiontodoDO = new AttentiontodoDO(); +// attentiontodoDO.setEvent("订单发货满一年"); +// attentiontodoDO.setAttr5("1"); +// attentiontodoDO.setAttr4(user.getNickname()); +// attentiontodoDO.setLevel("1"); +// attentiontodookddfh.add(attentiontodoDO); +// } +// }); +//// for (DeliverOrderDO storageLogNowDO : pageResult) { +//// +//// } +// } for (AttentiontodoDO attentiontodoRespVO : attentiontodookddfh) { List deliverOrderDOS = deliverOrderMapper.selectPagemyn(attentiontodoRespVO.getTxrid()); + Map> groupedBySale = deliverOrderDOS.stream() + .filter(order -> order.getSaleOrderIds() != null && !order.getSaleOrderIds().isEmpty()) // 过滤掉msd为空的条目 + .collect(Collectors.groupingBy(DeliverOrderDO::getSaleOrderIds)); { - for (DeliverOrderDO deliverOrderDO : deliverOrderDOS) { - bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO(); - BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称 - BdgzsomthingDO.setThings("订单编号:"+deliverOrderDO.getCode()+"发货日期到期一年");//事件名称 - BdgzsomthingDO.setAttr2(deliverOrderDO.getCode());//因为不用跳转所以为null - BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期 - BdgzsomthingDO.setTenantId(attentiontodoRespVO.getTxrid()); + for (Map.Entry> entry : groupedBySale.entrySet()) { + String ids = entry.getKey(); + List list = entry.getValue(); + String[] split = ids.split(","); + for (String s : split) { + ProjectOrderDO projectOrderDO = projectOrderMapper.selectProjectOrderById(Long.valueOf(s)); + if (projectOrderDO.getDeliveryStatus() == 3){ + bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO(); + + BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称 + BdgzsomthingDO.setThings("订单编号:"+projectOrderDO.getCode()+"发货日期到期一年");//事件名称 + BdgzsomthingDO.setAttr2(projectOrderDO.getCode());//因为不用跳转所以为null + BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期 + BdgzsomthingDO.setTenantId(attentiontodoRespVO.getTxrid()); // BdgzsomthingDO.setShowname(new Date());比较创建时间,不用单独填写 - if(attentiontodoRespVO.getAttr5().equals("1")){//提醒状态 - BdgzsomthingDO.setDborgz("待办"); - } - else if(attentiontodoRespVO.getAttr5().equals("2")){ - BdgzsomthingDO.setDborgz("关注"); - } - 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.setYesorno("0");//是否点击 - BdgzsomthingDO.setAttr4("0");//是否点击 - BdgzsomthingDO.setAttr3(deliverOrderDO.getCode());//获取数据当前表的id 改 - BdgzsomthingDO.setShowname(deliverOrderDO.getCreateTime());//获取数据当前表的创建事件 改 - //去重查询,重复则不加 - List selecteqint = bdgzsomthingMapper.selecteqint(BdgzsomthingDO); + if(attentiontodoRespVO.getAttr5().equals("1")){//提醒状态 + BdgzsomthingDO.setDborgz("待办"); + } + else if(attentiontodoRespVO.getAttr5().equals("2")){ + BdgzsomthingDO.setDborgz("关注"); + } + 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.setYesorno("0");//是否点击 + BdgzsomthingDO.setAttr4("0");//是否点击 + BdgzsomthingDO.setAttr3(projectOrderDO.getCode());//获取数据当前表的id 改 + BdgzsomthingDO.setShowname(list.get(0).getCreateTime());//获取数据当前表的创建事件 改 + //去重查询,重复则不加 + List selecteqint = bdgzsomthingMapper.selecteqintDeletedButNoOver(BdgzsomthingDO); + if(CollUtil.isNotEmpty(selecteqint)){ + if (hasRemindTimeSafeStorage){ + LocalDate today = LocalDate.now(); +// List updateBatch = new ArrayList<>(); + for (bdgzsomthingDO bdgzsomthingDO : selecteqint) { + LocalDate updatetime = bdgzsomthingDO.getUpdateTime().toLocalDate(); + // 计算两个日期之间的天数差 + long daysBetween = ChronoUnit.DAYS.between(updatetime, today); + if (daysBetween == Long.valueOf(remindTimeSafe)){ - - if(CollUtil.isNotEmpty(selecteqint)){ - if (hasRemindTimeSafeStorage){ - LocalDate today = LocalDate.now(); - List updateBatch = new ArrayList<>(); - for (bdgzsomthingDO bdgzsomthingDO : selecteqint) { - LocalDate updatetime = bdgzsomthingDO.getUpdateTime().toLocalDate(); - // 计算两个日期之间的天数差 - long daysBetween = ChronoUnit.DAYS.between(updatetime, today); - if (daysBetween == Long.valueOf(remindTimeSafe)){ - bdgzsomthingDO.setAttr12("0"); - updateBatch.add(bdgzsomthingDO); + bdgzsomthingMapper.updateYnAndAttr4(bdgzsomthingDO.getId().toString(),"0","0"); +// updateBatch.add(bdgzsomthingDO); + } + } +// bdgzsomthingMapper.updateBatch(updateBatch); + } + }else{ + List bdgzsomthingDOList = bdgzsomthingMapper.selecteqintNoDeletedAndNoOver(BdgzsomthingDO); + if (!CollUtil.isNotEmpty(bdgzsomthingDOList)){ + //插入方法 + bdgzsomthingMapper.insert(BdgzsomthingDO); + } + } + if (!hasDbPerson){ + //如果没有配置待办人员,要给对应的业务员发 + bdgzsomthingDO BdgzsomthingDO1 = new bdgzsomthingDO(); + BdgzsomthingDO1.setThingname(attentiontodoRespVO.getEvent());//事件名称 + BdgzsomthingDO1.setThings("订单编号:"+projectOrderDO.getCode()+"发货日期到期一年");//事件名称 + BdgzsomthingDO1.setAttr2(projectOrderDO.getCode());//因为不用跳转所以为null + BdgzsomthingDO1.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期 + BdgzsomthingDO1.setTenantId(attentiontodoRespVO.getTxrid()); +// BdgzsomthingDO.setShowname(new Date());比较创建时间,不用单独填写 + BdgzsomthingDO1.setDborgz("待办"); + BdgzsomthingDO1.setClick(projectOrderDO.getBusinessManName());//提醒人 + if(attentiontodoRespVO.getLevel().equals("1")){ + BdgzsomthingDO1.setLevel("紧急"); + } + else if(attentiontodoRespVO.getLevel().equals("2")){ + BdgzsomthingDO1.setLevel("一般"); + } + else if(attentiontodoRespVO.getLevel().equals("3")){ + BdgzsomthingDO1.setLevel("非紧急"); + } + BdgzsomthingDO1.setYesorno("0");//是否点击 + BdgzsomthingDO1.setAttr4("0");//是否点击 + BdgzsomthingDO1.setAttr3(projectOrderDO.getCode());//获取数据当前表的id 改 + BdgzsomthingDO1.setShowname(list.get(0).getCreateTime());//获取数据当前表的创建事件 改 + //去重查询,重复则不加 + List selecteqint1 = bdgzsomthingMapper.selecteqintDeletedButNoOver(BdgzsomthingDO1); + if(CollUtil.isNotEmpty(selecteqint1)){ + if (hasRemindTimeSafeStorage){ + LocalDate today = LocalDate.now(); +// List updateBatch = new ArrayList<>(); + for (bdgzsomthingDO bdgzsomthingDO : selecteqint1) { + LocalDate updatetime = bdgzsomthingDO.getUpdateTime().toLocalDate(); + // 计算两个日期之间的天数差 + long daysBetween = ChronoUnit.DAYS.between(updatetime, today); + if (daysBetween == Long.valueOf(remindTimeSafe)){ + + bdgzsomthingMapper.updateYnAndAttr4(bdgzsomthingDO.getId().toString(),"0","0"); +// updateBatch.add(bdgzsomthingDO); + } + } +// bdgzsomthingMapper.updateBatch(updateBatch); + } + }else{ + List bdgzsomthingDOList = bdgzsomthingMapper.selecteqintNoDeletedAndNoOver(BdgzsomthingDO1); + if (!CollUtil.isNotEmpty(bdgzsomthingDOList)){ + //插入方法 + bdgzsomthingMapper.insert(BdgzsomthingDO1); + } } } - bdgzsomthingMapper.updateBatch(updateBatch); } - }else{ - //插入方法 - bdgzsomthingMapper.insert(BdgzsomthingDO); + + } } +// for (DeliverOrderDO deliverOrderDO : deliverOrderDOS) { +// +// +// } } } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java index e248bea..68fda1f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java @@ -139,8 +139,10 @@ public class DeliverOrderServiceImpl implements DeliverOrderService { updateDeliverOrderSubList(updateReqVO.getId(), updateReqVO.getDeliverOrderSubs(), updateReqVO.getDeliverOrderOtherSubs()); if(updateObj.getDeliverStatus().intValue() == DeliverOrderStatusEnum.DELIVER.getCode()) { - crossOrderManager.refreshProjectOrderDeliverStatus(updateReqVO.getSaleOrderIds().split(","),updateReqVO.getDeliverDate()); - // crossOrderManager.generateStockOutOrder(updateReqVO); + // crossOrderManager.refreshProjectOrderDeliverStatus(updateReqVO.getSaleOrderIds().split(","),updateReqVO.getDeliverDate()); + crossOrderManager.refreshProjectOrderDeliverStatusNew(updateReqVO.getDeliverOrderSubs(),updateReqVO.getDeliverDate()); + + // crossOrderManager.generateStockOutOrder(updateReqVO); } } @@ -270,7 +272,6 @@ public class DeliverOrderServiceImpl implements DeliverOrderService { //子订单号 Long subId = o.getSaleOrderSubId(); - System.out.println("子项目ID"+subId); //查询此订单已发货总数量 DeliverOrderSubDO deliverOrderSubDO = deliverOrderSubMapper.searchNum(subId); //再获取订单中的生产数量 diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java index 48053dd..4327c2c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java @@ -1,8 +1,20 @@ package com.chanko.yunxi.mes.module.heli.service.materialplan; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.chanko.yunxi.mes.framework.common.util.object.ObjectUtils; +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.serialnumber.SerialNumberDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper; +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.system.api.user.AdminUserApi; +import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; +import com.chanko.yunxi.mes.module.system.dal.mysql.user.AdminUserMapper; +import com.chanko.yunxi.mes.module.system.service.user.AdminUserService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -39,6 +51,15 @@ public class MaterialPlanServiceImpl implements MaterialPlanService { @Resource private SerialNumberService serialNumberService; @Resource + private AdminUserApi userApi; + + @Autowired + private AttentiontodoService attentiontodoService; + @Resource + private AttentiontodoMapper attentiontodoMapper; + @Resource + private AdminUserService adminUserService; + @Resource private com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper bdgzsomthingMapper; @Override public Long createMaterialPlan(MaterialPlanSaveReqVO createReqVO) { @@ -72,6 +93,73 @@ public class MaterialPlanServiceImpl implements MaterialPlanService { LocalDateTime currTime = LocalDateTime.now(); if(updateReqVO.getStatus()==2){ updateObj.setSubmitTime(currTime); + MaterialPlanDO materialPlanDO = materialPlanMapper.selectById(updateReqVO.getId()); + + + List attentiontodook = attentiontodoMapper.selectByIdlist(8);//查找该类型的待办和关注人 改 + String nickname = userApi.getUser( SecurityFrameworkUtils.getLoginUser().getId()).getNickname(); + List 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("物料需求计划单号:"+materialPlanDO.getProjectMaterialPlanNo()+"已提交送审");//事件名称 + BdgzsomthingDO.setAttr2(materialPlanDO.getProjectMaterialPlanNo());//跳转携带参数 + BdgzsomthingDO.setAttr3(materialPlanDO.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(materialPlanDO.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); + + + + + // } + } + } } if(updateReqVO.getStatus()== 3){ updateObj.setAuditTime(currTime); @@ -79,10 +167,10 @@ public class MaterialPlanServiceImpl implements MaterialPlanService { materialPlanMapper.updateById(updateObj); - bdgzsomthingDO abc= new bdgzsomthingDO(); - abc.setThingname("《物料需求计划》提交后"); - abc.setAttr3(updateObj.getProjectMaterialPlanNo()); - bdgzsomthingMapper.updateok(abc); +// bdgzsomthingDO abc= new bdgzsomthingDO(); +// abc.setThingname("《物料需求计划》提交后"); +// abc.setAttr3(updateObj.getProjectMaterialPlanNo()); +// bdgzsomthingMapper.updateok(abc); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplandetail/MaterialPlanDetailServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplandetail/MaterialPlanDetailServiceImpl.java index ceac9a5..62e142a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplandetail/MaterialPlanDetailServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplandetail/MaterialPlanDetailServiceImpl.java @@ -36,11 +36,7 @@ import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; @Service @Validated public class MaterialPlanDetailServiceImpl implements MaterialPlanDetailService { - @Resource - private AdminUserApi userApi; - @Autowired - private AttentiontodoService attentiontodoService; @Resource private MaterialPlanMapper materialPlanMapper; @Resource @@ -66,65 +62,7 @@ public class MaterialPlanDetailServiceImpl implements MaterialPlanDetailService MaterialPlanDetailDO updateObj = BeanUtils.toBean(updateReqVO, MaterialPlanDetailDO.class); materialPlanDetailMapper.updateById(updateObj); //需求计划送审 完美点击插入 - MaterialPlanDO materialPlanDO = materialPlanMapper.selectById(updateObj.getProjectMaterialPlanId()); - - List attentiontodook = attentiontodoMapper.selectByIdlist(8);//查找该类型的待办和关注人 改 - String nickname = userApi.getUser( SecurityFrameworkUtils.getLoginUser().getId()).getNickname(); - List 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(materialPlanDO.getProjectMaterialPlanNo()+"已提交送审");//事件名称 - BdgzsomthingDO.setAttr2(materialPlanDO.getProjectMaterialPlanNo());//跳转携带参数 - BdgzsomthingDO.setAttr3(materialPlanDO.getProjectMaterialPlanNo());//独特标识 -// BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期 -// BdgzsomthingDO.setShowname(new Date());比较创建时间,不用单独填写 - if(attentiontodoRespVO.getAttr5().equals("1")){//提醒状态 - BdgzsomthingDO.setDborgz("待办"); - } - else if(attentiontodoRespVO.getAttr5().equals("2")){ - BdgzsomthingDO.setDborgz("关注"); - } - 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); - - - - - // } - } - } ////////////////////////////////////////////////// diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanService.java index 5784939..c96b88f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanService.java @@ -53,11 +53,13 @@ public interface PlanService { PageResult getPlanPage(PlanPageReqVO pageReqVO); PageResult getPlanPageByStatus(PlanPageReqVO pageReqVO); - + PlanDO getPlanByProjectId(Long projectId); Long generatePlanByProjectId(Long projectId); void generatePlanTaskByPlanId(Long planId ,String type); void updatePlanStatusToTerminateByProjectId(Long projectId); boolean complete(Long id); + + int updateById(PlanDO planDO); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanServiceImpl.java index f86a7b7..5ce9909 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanServiceImpl.java @@ -8,6 +8,7 @@ import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum; import com.chanko.yunxi.mes.framework.operatelog.core.service.OperateLogFrameworkService; +import com.chanko.yunxi.mes.framework.web.core.util.WebFrameworkUtils; import com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo.PlanPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo.PlanSaveReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.plansub.vo.PlanSubPageReqVO; @@ -161,7 +162,14 @@ private TaskReportMapper taskReportMapper; public PageResult getPlanPageByStatus(PlanPageReqVO pageReqVO) { return planMapper.selectPageByStatus(pageReqVO); } - + @Override + public PlanDO getPlanByProjectId(Long projectId){ + return planMapper.selectOne(new LambdaQueryWrapper() {{ + eq(PlanDO::getProjectId, projectId); + orderByDesc(PlanDO::getId); + last("LIMIT 1"); + }}); + } @Override @Transactional(rollbackFor = Exception.class) public Long generatePlanByProjectId(Long projectId){ @@ -225,7 +233,8 @@ private TaskReportMapper taskReportMapper; serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); planDO.setPlanNo(PROJECT_PLAN.getCode(serialNumberDO.getSerialNumber().toString())); - + Long userId = WebFrameworkUtils.getLoginUserId(); + planDO.setCreator(userId.toString()); planMapper.insert(planDO); // 回写序列记录 serialNumberService.updateSerialNumber(serialNumberDO); @@ -268,7 +277,10 @@ private TaskReportMapper taskReportMapper; updatePlanTaskStatusToTerminateByPlanId(planDO.getId()); } } - + @Override + public int updateById(PlanDO planDO){ + return planMapper.updateById(planDO); + } @Override public boolean complete(Long id) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java index 6c80b95..1906b35 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java @@ -1,6 +1,7 @@ package com.chanko.yunxi.mes.module.heli.service.processbom; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.generator.IFill; @@ -29,6 +30,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDeta import com.chanko.yunxi.mes.module.heli.dal.dataobject.shenhe.ShenheDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.plan.PlanMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.plantask.PlanTaskMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper; @@ -41,7 +43,9 @@ import com.chanko.yunxi.mes.module.heli.service.plantaskbom.PlanTaskBomService; import com.chanko.yunxi.mes.module.system.api.user.AdminUserApi; import com.chanko.yunxi.mes.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; 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.mysql.dict.DictDataMapper; +import com.chanko.yunxi.mes.module.system.service.user.AdminUserService; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -98,6 +102,10 @@ public class ProcessBomServiceImpl implements ProcessBomService { private AttentiontodoMapper attentiontodoMapper; @Resource private DictDataMapper dictDataMapper; + @Resource + private AdminUserService adminUserService; + @Resource + private PlanMapper planMapper; @Override @Transactional(rollbackFor = Exception.class) public Long createProcessBom(ProcessBomSaveReqVO createReqVO) { @@ -547,8 +555,8 @@ public class ProcessBomServiceImpl implements ProcessBomService { bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO(); BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称 BdgzsomthingDO.setThings("BOM" + updateObj.getProjectSubCode() + "审核已通过,请推送任务通知单");//事件名称 - BdgzsomthingDO.setAttr2(getplanid.getId().toString());//跳转携带参数 - BdgzsomthingDO.setAttr3(getplanid.getId().toString());//独特标识 + BdgzsomthingDO.setAttr2(getplanid.getPlanNo());//跳转携带参数 + BdgzsomthingDO.setAttr3(getplanid.getPlanNo());//独特标识 // BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期 // BdgzsomthingDO.setShowname(new Date());比较创建时间,不用单独填写 if (attentiontodoRespVO.getAttr5().equals("1")) {//提醒状态 @@ -556,7 +564,19 @@ public class ProcessBomServiceImpl implements ProcessBomService { } else if (attentiontodoRespVO.getAttr5().equals("2")) { BdgzsomthingDO.setDborgz("关注"); } - BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());//提醒人 + + if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())){ +// ProcessBomDO processBomDO = processBomMapper.selectById(updateReqVO.getId()); + PlanDO planDO = planMapper.selectOne(new LambdaQueryWrapper().eq(PlanDO::getPlanNo, getplanid.getPlanNo())); + if (ObjectUtil.isNotEmpty(planDO)){ + 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")) { @@ -745,7 +765,15 @@ public class ProcessBomServiceImpl implements ProcessBomService { } else if (attentiontodoRespVO.getAttr5().equals("2")) { BdgzsomthingDO.setDborgz("关注"); } - BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());//提醒人 + if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())){ + AdminUserDO user = adminUserService.getUser(Long.valueOf(processBomDO.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")) { @@ -810,7 +838,14 @@ public class ProcessBomServiceImpl implements ProcessBomService { } else if (attentiontodoRespVO.getAttr5().equals("2")) { BdgzsomthingDO.setDborgz("关注"); } - BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());//提醒人 + if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())){ + AdminUserDO user = adminUserService.getUser(Long.valueOf(processBomDO.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")) { diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java index 7562523..18e2541 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java @@ -1,18 +1,23 @@ package com.chanko.yunxi.mes.module.heli.service.processdesign; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.generator.IFill; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; import com.chanko.yunxi.mes.framework.common.util.object.ObjectUtils; +import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils; import com.chanko.yunxi.mes.module.heli.controller.admin.processdesign.vo.ProcessDesignPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.processdesign.vo.ProcessDesignProgressPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.processdesign.vo.ProcessDesignSaveReqSubVO; import com.chanko.yunxi.mes.module.heli.controller.admin.processdesign.vo.ProcessDesignSaveReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.zjbgmasterline.vo.ZjBgMasterLinePageReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processdesign.ProcessDesignDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processdesignprogress.ProcessDesignProgressDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.zjbgmasterline.ZjBgMasterLineDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processdesign.ProcessDesignMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processdesign.ProcessDesignProgressMapper; import com.chanko.yunxi.mes.module.heli.enums.ProcessDesignTypeEnum; @@ -46,8 +51,8 @@ public class ProcessDesignServiceImpl implements ProcessDesignService { private ProcessDesignMapper processDesignMapper; @Resource private ProcessDesignProgressMapper processDesignProgressMapper; - - + @Resource + private bdgzsomthingMapper bdgzsomthingMapper; @Override public PageResult getProcessPage(ProcessDesignProgressPageReqVO pageReqVO) { return processDesignProgressMapper.selectPage(pageReqVO); @@ -56,19 +61,18 @@ public class ProcessDesignServiceImpl implements ProcessDesignService { public Long updateBaoGong(ProcessDesignSaveReqSubVO reqVO){ //先取出主ID下的所有报工百分比判断不能报工不能超过100 ProcessDesignProgressDO processDesignProgressDOS = processDesignProgressMapper.selectSumJinDu(reqVO.getZid()); - BigDecimal value1 = reqVO.getProgress(); - BigDecimal threshold = new BigDecimal("100"); + BigDecimal newProgress = reqVO.getProgress(); + BigDecimal OVER_PROGRESS_VALUE = new BigDecimal("100"); if(processDesignProgressDOS != null){ //相加判断是否大于100,大于时返回前端并给用户提示 - BigDecimal value2 = processDesignProgressDOS.getProgress(); - BigDecimal sum = value1.add(value2); + BigDecimal beforeProgress = processDesignProgressDOS.getProgress(); - if (value1.compareTo(threshold) > 0) { + if (newProgress.compareTo(OVER_PROGRESS_VALUE) > 0) { //大于100时不执行,并返回给用户,提示设计进度不能超过100 throw exception(TASK_REPORT_PARAMS_ERRORJD); } else { - if(processDesignProgressDOS.getProgress().compareTo(value1)>0){ + if(beforeProgress.compareTo(newProgress)>0){ throw exception(TASK_REPORT_PARAMS_ERRORSJBG); }else{ //反之插入数据库数据 @@ -79,12 +83,11 @@ public class ProcessDesignServiceImpl implements ProcessDesignService { if (reqVO.getRemark() != null && !reqVO.getRemark().trim().equals("")){ processDesignProgressDO.setRemark(reqVO.getRemark()); } - processDesignProgressMapper.insert(processDesignProgressDO); } } }else{ - if(value1.compareTo(threshold) > 0){ + if(newProgress.compareTo(OVER_PROGRESS_VALUE) > 0){ throw exception(TASK_REPORT_PARAMS_ERRORJD); }else{ //反之插入数据库数据 @@ -96,11 +99,42 @@ public class ProcessDesignServiceImpl implements ProcessDesignService { } } + if (newProgress.compareTo(OVER_PROGRESS_VALUE) == 0){ + //如果进度为100%,要删除待办提醒 + //1.查询父项拿到设计图纸类型 + ProcessDesignDO processDesignDO = processDesignMapper.selectById(reqVO.getZid()); + String designType = getDesignType(processDesignDO.getProcessDesignType().split("BLUEPRINT_")[1]); + //2.查询待办是否有这个待办 + List bdgzsomthingDOList = bdgzsomthingMapper.selecteqintAttr12IsNull(processDesignDO.getPlanCode(), designType); + //如果有就更新待办 + if (CollUtil.isNotEmpty(bdgzsomthingDOList)){ + for (bdgzsomthingDO bdgzsomthingDO : bdgzsomthingDOList) { + bdgzsomthingDO.setAttr4("1"); + bdgzsomthingDO.setAttr12("0"); + bdgzsomthingMapper.updateById(bdgzsomthingDO); + } + } + } return null; } + + public String getDesignType(String type){ + if (type.equals("2D")){ + return "2D设计"; + }else if (type.equals("3D")){ + return "3D设计"; + }else if (type.equals("WORKBLANK")){ + return "毛坯设计"; + }else if (type.equals("FOUNDRY_TECHNOLOGY")){ + //铸造工艺 + return "铸造工艺设计"; + }else { + return""; + } + } @Override public Long updateBaoGong(Long zid, BigDecimal progress, String imageLink,String remark){ //先取出主ID下的所有报工百分比判断不能报工不能超过100 @@ -203,7 +237,7 @@ public class ProcessDesignServiceImpl implements ProcessDesignService { } @Override - public PageResult getProcessDesignPage(ProcessDesignPageReqVO pageReqVO) { + public PageResult getProcessDesignPage(ProcessDesignPageReqVO pageReqVO) { if(pageReqVO.getIsOverview()){ PageResult processDesignDOPageResult = processDesignMapper.selectPageOverview(pageReqVO); if(processDesignDOPageResult.getTotal() > 0){ diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java index 47fb1bc..8228998 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java @@ -24,6 +24,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.orderys.OrderYsDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.deliverorder.DeliverOrderSubMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.orderys.OrderYsMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderMapper; @@ -106,7 +107,7 @@ public class ProjectOrderServiceImpl implements ProjectOrderService { @Autowired private AttentiontodoService attentiontodoService; @Autowired - private com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper bdgzsomthingMapper; + private bdgzsomthingMapper bdgzsomthingMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -187,9 +188,18 @@ public class ProjectOrderServiceImpl implements ProjectOrderService { public void showzbmoney(Long id) { // 校验存在 validateProjectOrderExists(id); + ProjectOrderDO projectOrderDO = projectOrderMapper.selectById(id); // 更新是否收取质保金 LambdaUpdateWrapper eq = new LambdaUpdateWrapper().eq(ProjectOrderDO::getId, id).set(ProjectOrderDO::getShowZbmoney, 1).set(ProjectOrderDO::getDeliveryStatus,4); projectOrderMapper.update(eq); + //更新待办关注表的状态 + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(bdgzsomthingDO::getAttr3,projectOrderDO.getCode()) + .eq(bdgzsomthingDO::getThingname,"订单发货满一年") + .set(bdgzsomthingDO::getAttr4,"1") + .set(bdgzsomthingDO::getAttr12,"0"); + bdgzsomthingMapper.update(wrapper); + } @Override diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatServiceImpl.java index 70d178a..30bd9cd 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatServiceImpl.java @@ -155,20 +155,25 @@ public class StorageMatServiceImpl implements StorageMatService { //上面是入库,下面是要从原仓出库 //减原仓 for (StorageMatFBSaveReqVO storageMatFBSaveReqVO : createReqVO) { - String[] split = storageMatFBSaveReqVO.getWareHouseId().split("-"); - if (split.length == 3) { - storageMatFBSaveReqVO.setWhId(Long.valueOf(split[0])); - storageMatFBSaveReqVO.setRgId(Long.valueOf(split[1])); - storageMatFBSaveReqVO.setPnId(Long.valueOf(split[2])); - } else if (split.length == 2) { - storageMatFBSaveReqVO.setWhId(Long.valueOf(split[0])); - storageMatFBSaveReqVO.setRgId(Long.valueOf(split[1])); - storageMatFBSaveReqVO.setPnId(null); - } else { - storageMatFBSaveReqVO.setWhId(Long.valueOf(split[0])); - storageMatFBSaveReqVO.setRgId(null); - storageMatFBSaveReqVO.setPnId(null); + if (storageMatFBSaveReqVO.getWareHouseId()!=null){ + String[] split = storageMatFBSaveReqVO.getWareHouseId().split("-"); + if (split.length == 3) { + storageMatFBSaveReqVO.setWhId(Long.valueOf(split[0])); + storageMatFBSaveReqVO.setRgId(Long.valueOf(split[1])); + storageMatFBSaveReqVO.setPnId(Long.valueOf(split[2])); + } else if (split.length == 2) { + storageMatFBSaveReqVO.setWhId(Long.valueOf(split[0])); + storageMatFBSaveReqVO.setRgId(Long.valueOf(split[1])); + storageMatFBSaveReqVO.setPnId(null); + } else { + storageMatFBSaveReqVO.setWhId(Long.valueOf(split[0])); + storageMatFBSaveReqVO.setRgId(null); + storageMatFBSaveReqVO.setPnId(null); + } + }else { + throw exception(BEFORE_STORAGE_NOT_EXISTS); } + } Map> outListByWhid = createReqVO.stream() .collect(Collectors.groupingBy(StorageMatFBSaveReqVO::getWhId)); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java index b7db35a..466d381 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java @@ -11,6 +11,7 @@ import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum; import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.*; import com.chanko.yunxi.mes.module.heli.controller.admin.ygjx.vo.YgjxPageReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.equipmanufacture.EquipManufactureDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.fpuserdetail.FpUserDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO; @@ -18,6 +19,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumber import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.equipmanufacture.EquipManufactureMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.fpuserdetail.FpUserDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.plan.PlanMapper; @@ -81,6 +83,8 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { private ZjPgMasterService zjPgMasterService; @Resource private PgMasterService pgMasterService; + @Resource + private bdgzsomthingMapper bdgzsomthingMapper; @Override @Transactional(rollbackFor = Exception.class) public Long createTaskDispatch(TaskDispatchSaveReqVO createReqVO) { @@ -515,6 +519,15 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { } } } + //看待办 + List bdgzsomthingDOList = bdgzsomthingMapper.selecteqintAttr12IsNull(taskDispatchDO.getCode(), "任务单"); + if (CollUtil.isNotEmpty(bdgzsomthingDOList)){ + for (bdgzsomthingDO bdgzsomthingDO : bdgzsomthingDOList) { + bdgzsomthingDO.setAttr4("1"); + bdgzsomthingDO.setAttr12("0"); + bdgzsomthingMapper.updateById(bdgzsomthingDO); + } + } if (taskDispatchDO.getDispatchType().equals("PRODUCTION") && isBomDetailProductionOver){ pgMasterService.insertPgList(planDO.getId(),planDO.getProjectId(),taskDispatchDO.getBomDetailId()); }else if (taskDispatchDO.getDispatchType().equals("ASSEMBLE") && isProjectSubAssembleOver){ diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/attentiontodo/AttentiontodoMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/attentiontodo/AttentiontodoMapper.xml index 53faa81..546c655 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/attentiontodo/AttentiontodoMapper.xml +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/attentiontodo/AttentiontodoMapper.xml @@ -20,9 +20,9 @@ resultType="com.chanko.yunxi.mes.module.heli.dal.dataobject.attentiontodo.AttentiontodoDO"> -SELECT a.*, b.tenant_id as txrid +SELECT a.*, a.tenant_id as txrid FROM db_attentiontodo a - INNER JOIN system_users b ON a.attr4 = b.nickname + LEFT JOIN system_users b ON a.attr4 = b.nickname WHERE a.attr2 = #{param1} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/bdgzsomthing/bdgzsomthingMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/bdgzsomthing/bdgzsomthingMapper.xml index ccb8ef9..ba3d78f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/bdgzsomthing/bdgzsomthingMapper.xml +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/bdgzsomthing/bdgzsomthingMapper.xml @@ -15,6 +15,11 @@ SET yesorno = '1' , nowtime =#{nowtime} WHERE id = #{id} + + UPDATE dbzz_table + SET yesorno = #{yn} , attr4 =#{attr4} + WHERE id = #{id} + UPDATE dbzz_table SET yesorno = '1' , nowtime =#{nowtime},attr4='1' @@ -23,7 +28,7 @@ UPDATE dbzz_table SET attr4 = '1' - WHERE thingname IN ('设计任务到期', '装配任务到期', '生产任务到期', '质检任务到期前') + WHERE thingname IN ('设计任务到期', '装配任务到期', '生产任务到期', '质检任务到期前','《物料需求计划》的采购') and attr4='0' @@ -47,7 +52,20 @@ SET attr4 = '1' WHERE attr3=#{attr3} and attr4='0' - + UPDATE dbzz_table SET attr4 = '1' @@ -60,7 +78,7 @@ UPDATE dbzz_table - SET attr4 = '0',attr12 = '1' + SET attr4 = '1',attr12 = '1' WHERE id = #{id} + select * from dbzz_table where things=#{things} and attr12='1' and attr4='1' and dborgz=#{dborgz} + + + + select w.*from project_purchase_order q, + (SELECT + b.project_material_plan_no,a.project_material_plan_id,c.material_name as name,a.boom_detail_id + FROM + project_material_plan_boom a + JOIN + project_material_plan b ON a.project_material_plan_id = b.id + JOIN pro_process_bom_detail c ON c.id=a.boom_detail_id + WHERE + b.status = '3' + AND CURDATE() >= DATE_SUB(a.boom_arrive_date, INTERVAL #{evday} DAY) + and b.tenant_id =#{id} + ) w + where q.project_material_plan_id =w.project_material_plan_id + and q.receiving_status !='3' + group by project_material_plan_no + + \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/materialplandetail/MaterialPlanDetailMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/materialplandetail/MaterialPlanDetailMapper.xml index 6f0489a..c58ac5a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/materialplandetail/MaterialPlanDetailMapper.xml +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/materialplandetail/MaterialPlanDetailMapper.xml @@ -10,11 +10,11 @@ --> + + + + +