Переглянути джерело

Merge branch 'workordering' into test

zhangcl 1 тиждень тому
батько
коміт
64e7e23e63

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotmainworkorder/vo/IotMainWorkOrderPageReqVO.java

@@ -50,7 +50,7 @@ public class IotMainWorkOrderPageReqVO extends PageParam {
     @Schema(description = "保养费用")
     private BigDecimal cost;
 
-    @Schema(description = "保养结果(1待执行 2已执行)")
+    @Schema(description = "保养结果(1待执行 2已执行 0全部 3延时)")
     private Integer result;
 
     @Schema(description = "其他费用")

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotmainworkorder/vo/IotMainWorkOrderRespVO.java

@@ -86,6 +86,10 @@ public class IotMainWorkOrderRespVO {
     @ExcelProperty("备注")
     private String remark;
 
+    @Schema(description = "延期保养原因", example = "缺少物料")
+    @ExcelProperty("延期保养原因")
+    private String delayReason;
+
     @Schema(description = "状态 0启用  1停用", example = "2")
     @ExcelProperty("状态 0启用  1停用")
     private Integer status;

+ 3 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotmainworkorder/vo/IotMainWorkOrderSaveReqVO.java

@@ -64,6 +64,9 @@ public class IotMainWorkOrderSaveReqVO {
     @Schema(description = "备注", example = "你说的对")
     private String remark;
 
+    @Schema(description = "延期保养原因", example = "缺少物料")
+    private String delayReason;
+
     @Schema(description = "状态 0启用  1停用", example = "2")
     private Integer status;
 

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotmainworkorder/IotMainWorkOrderDO.java

@@ -97,6 +97,10 @@ public class IotMainWorkOrderDO extends BaseDO {
      * 备注
      */
     private String remark;
+    /**
+     * 延期保养原因
+     */
+    private String delayReason;
     /**
      * 状态 0启用  1停用
      */

+ 10 - 7
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotmainworkorder/IotMainWorkOrderServiceImpl.java

@@ -114,10 +114,11 @@ public class IotMainWorkOrderServiceImpl implements IotMainWorkOrderService {
     @Override
     public void updateIotMainWorkOrder(IotMainWorkOrderSaveReqVO updateReqVO) {
         // 校验存在
-        validateIotMainWorkOrderExists(updateReqVO.getId());
-        // 更新
-        IotMainWorkOrderDO updateObj = BeanUtils.toBean(updateReqVO, IotMainWorkOrderDO.class);
-        iotMainWorkOrderMapper.updateById(updateObj);
+        IotMainWorkOrderDO workOrder = validateIotMainWorkOrderExists(updateReqVO.getId());
+        // 更新 暂时只更新 保养工单的 自保原因
+        // IotMainWorkOrderDO updateObj = BeanUtils.toBean(updateReqVO, IotMainWorkOrderDO.class);
+        workOrder.setDelayReason(updateReqVO.getDelayReason());
+        iotMainWorkOrderMapper.updateById(workOrder);
     }
 
     @Override
@@ -128,10 +129,12 @@ public class IotMainWorkOrderServiceImpl implements IotMainWorkOrderService {
         iotMainWorkOrderMapper.deleteById(id);
     }
 
-    private void validateIotMainWorkOrderExists(Long id) {
-        if (iotMainWorkOrderMapper.selectById(id) == null) {
+    private IotMainWorkOrderDO validateIotMainWorkOrderExists(Long id) {
+        IotMainWorkOrderDO workOrder = iotMainWorkOrderMapper.selectById(id);
+        if (ObjUtil.isEmpty(workOrder)) {
             throw exception(IOT_MAIN_WORK_ORDER_NOT_EXISTS);
         }
+        return workOrder;
     }
 
     @Override
@@ -2366,7 +2369,7 @@ public class IotMainWorkOrderServiceImpl implements IotMainWorkOrderService {
         // key工厂id-成本中心id-物料编码-bomId        value保养项物料对象
         Map<String, IotMainWorkOrderBomMaterialSaveReqVO> bomMaterialPair = new HashMap<>();
         workOrderMaterials.forEach(material -> {
-            IotMainWorkOrderBomMaterialDO tempMaterial = BeanUtils.toBean(material, IotMainWorkOrderBomMaterialDO.class);
+            IotMainWorkOrderBomMaterialDO tempMaterial = BeanUtil.copyProperties(material, IotMainWorkOrderBomMaterialDO.class, "id");
             tempMaterial.setWorkOrderId(order.getId());
             workOrderBomMaterialDOS.add(tempMaterial);
             if ("本地库存".equals(material.getMaterialSource())) {

+ 2 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotmainworkorderbommaterial/IotMainWorkOrderBomMaterialServiceImpl.java

@@ -125,8 +125,8 @@ public class IotMainWorkOrderBomMaterialServiceImpl implements IotMainWorkOrderB
         Set<Long> stockLocationIds = new HashSet<>();
         if (CollUtil.isEmpty(sapOrgS)) {
             // throw exception(IOT_MAIN_WORK_ORDER_BOM_MATERIAL_NOT_EXISTS);
-            // todo 应该有必要的提示信息 部门需要维护SAP组织信息
-            return new PageResult<>(new ArrayList<>(), 0l);
+            // todo 应该有必要的提示信息 部门需要维护SAP组织信息 不维护组织部门的SAP属性 查询所有数据
+            // return new PageResult<>(new ArrayList<>(), 0l);
         }
         sapOrgS.forEach(sapOrg -> {
             if (ObjUtil.isNotEmpty(sapOrg.getFactoryId())) {

+ 4 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotMainWorkOrderMapper.xml

@@ -44,9 +44,12 @@
                 #{key}
             </foreach>
         </if>
-        <if test="reqVO.result != null and reqVO.result != 0">
+        <if test="reqVO.result != null and reqVO.result != 0 and reqVO.result != 3">
             AND mwo.result = #{reqVO.result}
         </if>
+        <if test="reqVO.result != null and reqVO.result == 3">
+            AND mwo.delay_reason <![CDATA[ <> ]]> ''
+        </if>
         <if test="reqVO.createTime != null and reqVO.createTime.length > 0">
             <!-- 处理“开始时间”(数组第1位,如 createTime[0] = 2024-01-01 00:00:00) -->
             <if test="reqVO.createTime[0] != null">