1 rok pred
rodič
commit
b4547a28e3

+ 3 - 0
platform-dao/src/main/java/com/platform/dao/dto/longyanpurchaseorder/LongYanPurchaseOrderDTO.java

@@ -22,6 +22,9 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class LongYanPurchaseOrderDTO extends BaseDTO implements Serializable {
+    private List<LongYanPurchaseDetailDTO> deleteDetails;
+    private List<LongYanPurchaseDetailDTO> addDetails;
+    private List<LongYanPurchaseDetailDTO> updateDetails;
     private String purchaseNo;
     private Integer status;
     private Integer oldOrNew;

+ 1 - 1
platform-rest/src/main/java/com/platform/rest/controller/longyanpurchaseorder/LongYanPurchaseOrderController.java

@@ -76,7 +76,7 @@ public class LongYanPurchaseOrderController {
    * @return R
    */
   @SysLog("修改龙岩采购单表")
-  @PutMapping("/{id}")
+  @PostMapping("/{id}")
   @PreAuthorize("@pms.hasPermission('longyanpurchaseorder-menu-edit')")
   public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody LongYanPurchaseOrderDTO longYanPurchaseOrderDTO) {
       longYanPurchaseOrderService.modModelByDTO(longYanPurchaseOrderDTO);

+ 49 - 0
platform-service/src/main/java/com/platform/service/longyanpurchaseorder/impl/LongYanPurchaseOrderServiceImpl.java

@@ -65,6 +65,14 @@ public class LongYanPurchaseOrderServiceImpl extends BaseServiceImpl<LongYanPurc
     private SbModelSpareBomMapper sbModelSpareBomMapper;
     private SbInfoMapper sbInfoMapper;
 
+    @Override
+    public void deleteByPrimaryKey(String id) {
+        LongYanPurchaseDetail detail = new LongYanPurchaseDetail();
+        detail.setLongYangPurchaseOrderId(id);
+        longYanPurchaseDetailMapper.delete(detail);
+        super.deleteByPrimaryKey(id);
+    }
+
     @Override
     public List<LongYanPurchaseOrderByTimeExport> exportPurchaseByTime(LongYanPurchaseOrderDTO dto, Integer searchYear, LocalDate startMonth, LocalDate endMonth) {
         List<Map<String, LocalDateTime>> monthStartAndEndList = new ArrayList<Map<String, LocalDateTime>>();
@@ -144,6 +152,47 @@ public class LongYanPurchaseOrderServiceImpl extends BaseServiceImpl<LongYanPurc
         return vo;
     }
 
+    @Override
+    public void modModelByDTO(LongYanPurchaseOrderDTO model) {
+        UserInfo userInfo = SecurityUtils.getUserInfo();
+        LongYanPurchaseOrder order = BeanConverterUtil.copyObjectProperties(model,LongYanPurchaseOrder.class);
+        order.setUpdateTime(LocalDateTime.now());
+        order.setUpdateUserId(userInfo.getUserId());
+        order.setUpdateUserName(userInfo.getRealName());
+        mapper.updateByPrimaryKey(order);
+        List<LongYanPurchaseDetailDTO> addDetails = model.getAddDetails();
+        packageDetail(userInfo, addDetails,1);
+        longYanPurchaseDetailMapper.insertListforComplex(BeanConverterUtil.copyListProperties(addDetails,LongYanPurchaseDetail.class));
+        List<LongYanPurchaseDetailDTO> updateDetails = model.getUpdateDetails();
+        packageDetail(userInfo, updateDetails,2);
+        updateDetails.forEach((item)->{
+            longYanPurchaseDetailMapper.updateByPrimaryKeySelective(BeanConverterUtil.copyObjectProperties(item,LongYanPurchaseDetail.class));
+        });
+        List<LongYanPurchaseDetailDTO> deleteDetails = model.getDeleteDetails();
+        deleteDetails.forEach((item)->{
+            longYanPurchaseDetailMapper.deleteByPrimaryKey(item.getId());
+        });
+    }
+
+    private void packageDetail(UserInfo userInfo, List<LongYanPurchaseDetailDTO> addDetails ,Integer type) {
+        if (addDetails!=null&&addDetails.size()>0){
+            if (type==1) {
+                for (LongYanPurchaseDetailDTO detailDTO : addDetails) {
+                    detailDTO.setId(IdGeneratorUtils.getObjectId());
+                    detailDTO.setCreatedUserId(userInfo.getUserId());
+                    detailDTO.setCreatedUserName(userInfo.getRealName());
+                    detailDTO.setCreatedTime(LocalDateTime.now());
+                }
+            }else if (type==2){
+                for (LongYanPurchaseDetailDTO detailDTO : addDetails) {
+                    detailDTO.setUpdateUserId(userInfo.getUserId());
+                    detailDTO.setUpdateUserName(userInfo.getRealName());
+                    detailDTO.setUpdateTime(LocalDateTime.now());
+                }
+            }
+        }
+    }
+
     @Override
     public LongYanPurchaseOrder saveModelByDTO(LongYanPurchaseOrderDTO model) {
         List<LongYanPurchaseDetailDTO> detailDTOS = model.getDetailDTOS();