From cf9a5039e6db9d1d5963e3fe1a37d00169ec2ef7 Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期三, 25 六月 2025 11:18:22 +0800 Subject: [PATCH] 验收报告修改 --- src/main/java/com/whyc/service/ProductHistoryService.java | 206 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 166 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/whyc/service/ProductHistoryService.java b/src/main/java/com/whyc/service/ProductHistoryService.java index f25ce1a..34c60d0 100644 --- a/src/main/java/com/whyc/service/ProductHistoryService.java +++ b/src/main/java/com/whyc/service/ProductHistoryService.java @@ -4,25 +4,41 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.whyc.dto.Response; +import com.whyc.mapper.ProductBomHistoryMapper; +import com.whyc.mapper.ProductBomMapper; import com.whyc.mapper.ProductHistoryMapper; import com.whyc.mapper.ProductMapper; +import com.whyc.pojo.Material; import com.whyc.pojo.Product; import com.whyc.pojo.ProductHistory; +import com.whyc.pojo.ProductLockLog; +import com.whyc.util.ActionUtil; +import com.whyc.util.DateUtil; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import java.awt.print.PrinterJob; +import java.util.Date; +import java.util.LinkedList; import java.util.List; @Service public class ProductHistoryService { @Autowired(required = false) private ProductHistoryMapper mapper; + @Autowired(required = false) private ProductMapper productMapper; + @Autowired(required = false) + private ProductBomMapper productBomMapper; + @Autowired(required = false) + private ProductBomHistoryMapper productBomHistoryMapper; + @Autowired + private ProductLockLogService lockLogService; //浜у搧璇︽儏鏌ョ湅鐗堟湰淇℃伅 public Response getProductVersion(String parentCode,String customCode) { @@ -35,10 +51,38 @@ } /**鏂板杩藉姞鐨勭増鏈苟灏嗗師鍏堢殑鐗堟湰鐨勫惎鐢ㄨ缃负鏈惎鐢�*/ + @Transactional public void insertAndUpdateEnabled(ProductHistory productHistory) { + QueryWrapper<ProductHistory> query = Wrappers.query(); + query.eq("parent_code",productHistory.getParentCode()) + .eq("custom_code",productHistory.getCustomCode()).ne("enabled",0); + List<ProductHistory> productNoZeroList = mapper.selectList(query); + //娣诲姞鏂板鏃ュ織鍒皌b_product_lock_log琛� + List<ProductLockLog> lockLogs = new LinkedList<>(); + for (ProductHistory historyNoZero : productNoZeroList) { + ProductLockLog lockLog = new ProductLockLog(); + lockLog.setParentCode(historyNoZero.getParentCode()); + lockLog.setCustomCode(historyNoZero.getCustomCode()); + lockLog.setVersion(historyNoZero.getVersion()); + lockLog.setVersionTime(DateUtil.YYYY_MM_DD_HH_MM_SS.format(historyNoZero.getVersionTime())); + if(historyNoZero.getEnabled() == 1) { + lockLog.setReason("浜у搧bom涓婁紶,鍘熺敓鏁堢増鏈攣瀹�"); + }else{ + lockLog.setReason("浜у搧bom涓婁紶,鍘熷緟瀹℃牳鐗堟湰閿佸畾"); + } + lockLog.setOwner(ActionUtil.getUser().getName()); + lockLog.setCreateTime(new Date()); + //1浠h〃鏃ュ織绫诲瀷涓�:閿佸畾 + lockLog.setLockFlag(1); + + lockLogs.add(lockLog); + } + if(lockLogs.size()>0) { + lockLogService.insertBatch(lockLogs); + } UpdateWrapper<ProductHistory> update = Wrappers.update(); update.set("enabled",0).eq("parent_code",productHistory.getParentCode()) - .eq("custom_code",productHistory.getCustomCode()).eq("enabled",1); + .eq("custom_code",productHistory.getCustomCode()).ne("enabled",0); mapper.update(null,update); mapper.insert(productHistory); @@ -69,58 +113,107 @@ query.eq("parent_code",parentCode).eq("custom_code",customCode).orderByDesc("version").last(" limit 1"); return mapper.selectOne(query); } - //鍘嗗彶鐗堟湰鍙敤鎬ц瀹� - public Response setpHistoryEnable(String parentCode, String customCode, int version, int enabled) { - UpdateWrapper wrapper=new UpdateWrapper(); - wrapper.eq("parent_code",parentCode); - wrapper.eq("custom_code",customCode); - + //鍘嗗彶鐗堟湰鍙敤鎬ц瀹�<浜у搧涓寘鍚挘閲戜欢锛�0120锛夊鏋滃寘鍚渶瑕佹妸褰撴垚浜у搧鐨勯挘閲戜欢閿佹帀 + @Transactional + public Response setpHistoryEnable(String parentCode, String customCode, int version, int enabled, String reason, String versionTime) { int flag=0; - if(enabled==1){ + QueryWrapper qWrapper=new QueryWrapper(); + qWrapper.eq("parent_code",parentCode); + qWrapper.eq("custom_code",customCode); + //1.鏌ヨ褰撳墠product涓殑淇℃伅 + Product product=productMapper.selectOne(qWrapper); + if(enabled==1){//瑙i攣 //鍏堝皢鎵�鏈夌殑閿佸畾 + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.eq("parent_code",parentCode); + wrapper.eq("custom_code",customCode); wrapper.set("enabled",0); - flag=mapper.update(null,wrapper); - //鍐嶅皢閫変腑鐨勮涓哄彲鐢� - wrapper.eq("version",version); - wrapper.set("enabled",1); - flag=mapper.update(null,wrapper); + mapper.update(null,wrapper); + //鍐嶅皢閫変腑鐨勮涓哄彲鐢�(鏌ュ嚭瑕佷娇鐢ㄧ増鏈�) + QueryWrapper hisWrapper=new QueryWrapper(); + hisWrapper.eq("parent_code",parentCode); + hisWrapper.eq("custom_code",customCode); + hisWrapper.eq("version",version); + ProductHistory his=mapper.selectOne(hisWrapper); + UpdateWrapper wrapper1=new UpdateWrapper(); + wrapper1.eq("parent_code",parentCode); + wrapper1.eq("custom_code",customCode); + wrapper1.eq("id",his.getId()); + wrapper1.set("enabled",1); + flag=mapper.update(null,wrapper1); if(flag>0){ - QueryWrapper qWrapper=new QueryWrapper(); - qWrapper.eq("parent_code",parentCode); - qWrapper.eq("custom_code",customCode); - //灏嗛�変腑鐨勭増鏈殑鍘嗗彶淇℃伅鏌ヨ鍑烘潵 - qWrapper.eq("version",version); - ProductHistory pHistory=mapper.selectOne(qWrapper); - //prodcut涓垹闄ゆ棫鐨勪骇鍝佷俊鎭� + //2.灏嗛�変腑鐨勭増鏈殑鍘嗗彶淇℃伅鏌ヨ鍑烘潵 + /*qWrapper.eq("id",his.getId()); + ProductHistory pHistory=mapper.selectOne(qWrapper);*/ + //3:prodcut涓垹闄ゆ棫鐨勪骇鍝佷俊鎭� UpdateWrapper deleteWrapper=new UpdateWrapper(); - deleteWrapper.eq("parent_code",parentCode); - deleteWrapper.eq("custom_code",customCode); + deleteWrapper.eq("id",product.getId()); productMapper.delete(deleteWrapper); - //鍐嶅湪product涓煡璇㈣瀹氬彲鐢ㄧ殑pHistory - if(pHistory!=null){ - Product product=new Product(); - product.setParentCode(pHistory.getParentCode()); - product.setParentName(pHistory.getParentName()); - product.setParentModel(pHistory.getParentModel()); - product.setCustomCode(pHistory.getCustomCode()); - product.setCreateTime(pHistory.getCreateTime()); - product.setVersionTime(pHistory.getVersionTime()); - product.setVersion(pHistory.getVersion()); - productMapper.insert(product); + //4.productBom涓垹闄ゆ棫鐨勪俊鎭� + if(product!=null){ + UpdateWrapper bomWrapper=new UpdateWrapper(); + bomWrapper.eq("product_id",product.getId()); + productBomMapper.delete(bomWrapper); + } + if(his!=null){ + // 5.鍦╬roduct涓彃鍏ヨ瀹氬彲鐢ㄧ殑pHistory + productMapper.insertPselectPH(his.getId()); + //6.鍦╬roductBom涓彃鍏HsitoryBom鏌ヨ鍑虹殑鏁版嵁 + productBomMapper.insertBomSelectBomH(his.getId(),his.getSubVersionMax()); } } }else{ + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.eq("parent_code",parentCode); + wrapper.eq("custom_code",customCode); wrapper.eq("version",version); wrapper.set("enabled",0); flag=mapper.update(null,wrapper); - if(flag>0){ - //prodcut涓垹闄ゆ棫鐨勪骇鍝佷俊鎭� - UpdateWrapper deleteWrapper=new UpdateWrapper(); - deleteWrapper.eq("parent_code",parentCode); - deleteWrapper.eq("custom_code",customCode); - productMapper.delete(deleteWrapper); + + //3:prodcut涓骇鍝佺増鏈缃负-1 + UpdateWrapper uWrapper=new UpdateWrapper(); + uWrapper.eq("parent_code",parentCode); + uWrapper.eq("custom_code",customCode); + //璁句负涓嶅彲鐢ㄧ増鏈负-1 + uWrapper.set("version",-1); + productMapper.update(null,uWrapper); + + //4.鏌ヨ浜у搧鏄惁瀛樺湪鐗╂枡鏃堕挘閲戜欢鐨勪骇鍝� + List<Material> list=productMapper.selectMaterial_0120(parentCode,customCode); + //濡傛灉瀛樺湪鍒欓攣瀹� + if(list!=null&&list.size()>0){ + for (Material material_0120:list) { + //鍏堥攣瀹氬巻鍙� + UpdateWrapper wrapperHistory_0120=new UpdateWrapper(); + wrapperHistory_0120.eq("parent_code",material_0120.getSubCode()); + wrapperHistory_0120.set("enabled",0); + mapper.update(null,wrapperHistory_0120); + //鍐嶈缃疄鏃朵负-1 + UpdateWrapper wrapper_0120=new UpdateWrapper(); + wrapper_0120.eq("parent_code",material_0120.getSubCode()); + //璁句负涓嶅彲鐢ㄧ増鏈负-1 + wrapper_0120.set("version",-1); + productMapper.update(null,wrapper_0120); + } } + } + //閿佸畾鍜岃В閿佽褰曟坊鍔� + if(flag>0){ //鎿嶄綔鎴愬姛 + ProductLockLog lockLog = new ProductLockLog(); + lockLog.setParentCode(parentCode); + lockLog.setCustomCode(customCode); + lockLog.setVersion(version); + lockLog.setVersionTime(versionTime); + lockLog.setReason(reason); + lockLog.setOwner(ActionUtil.getUser().getName()); + lockLog.setCreateTime(new Date()); + if(enabled==0){ //閿佸畾 + lockLog.setLockFlag(1); + }else{ //瑙i攣 + lockLog.setLockFlag(0); + } + lockLogService.insert(lockLog); } return new Response().set(1,flag>0,"鍘嗗彶鐗堟湰鍙敤鎬ц瀹�"); } @@ -128,4 +221,37 @@ public void insert(ProductHistory his) { mapper.insert(his); } + + /** + * 鑾峰彇鏍囧噯浜у搧 + * @param parentCode + * @return + */ + public ProductHistory getStandard(String parentCode) { + QueryWrapper<ProductHistory> query = Wrappers.query(); + query.eq("parent_code",parentCode); + List<ProductHistory> historyList = mapper.selectList(query); + for (ProductHistory history : historyList) { + String customCode = history.getCustomCode(); + if(customCode == null || customCode.trim().equals("")){ //涓嶅瓨鍦ㄥ畾鍒惰〃鍗曞彿,鏄爣鍑嗕骇鍝� + return history; + } + } + return null; + } + + public boolean checkExists(String parentCode, String customCode) { + QueryWrapper<ProductHistory> query = Wrappers.query(); + query.eq("parent_code",parentCode); + if(!StringUtils.isBlank(customCode)){ //鏍囧噯浜у搧 + query.eq("custom_code",customCode); + } + query.last(" limit 1"); + ProductHistory productHistory = mapper.selectOne(query); + return productHistory!=null; + } + + public ProductHistory getById(Integer id) { + return mapper.selectById(id); + } } -- Gitblit v1.9.1