| | |
| | | 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.util.Date; |
| | | import java.util.LinkedList; |
| | | import java.util.List; |
| | | |
| | | @Service |
| | |
| | | } |
| | | |
| | | /**新增追加的版本并将原先的版本的启用设置为未启用*/ |
| | | @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); |
| | | //添加新增日志到tb_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代表日志类型为:锁定 |
| | | 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); |
| | |
| | | query.eq("parent_code",parentCode).eq("custom_code",customCode).orderByDesc("version").last(" limit 1"); |
| | | return mapper.selectOne(query); |
| | | } |
| | | //历史版本可用性设定 |
| | | //历史版本可用性设定<产品中包含钣金件(0120)如果包含需要把当成产品的钣金件锁掉 |
| | | @Transactional |
| | | public Response setpHistoryEnable(String parentCode, String customCode, int version, int enabled, String reason) { |
| | | UpdateWrapper wrapper=new UpdateWrapper(); |
| | | wrapper.eq("parent_code",parentCode); |
| | | wrapper.eq("custom_code",customCode); |
| | | 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){//解锁 |
| | | //先将所有的锁定 |
| | | 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); |
| | | //1.查询当前product中的信息 |
| | | Product product=productMapper.selectOne(qWrapper); |
| | | //2.将选中的版本的历史信息查询出来 |
| | | qWrapper.eq("version",version); |
| | | ProductHistory pHistory=mapper.selectOne(qWrapper); |
| | | /*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); |
| | | //4.productBom中删除旧的信息 |
| | | if(product!=null){ |
| | |
| | | bomWrapper.eq("product_id",product.getId()); |
| | | productBomMapper.delete(bomWrapper); |
| | | } |
| | | if(pHistory!=null){ |
| | | if(his!=null){ |
| | | // 5.在product中插入设定可用的pHistory |
| | | productMapper.insertPselectPH(pHistory.getId()); |
| | | productMapper.insertPselectPH(his.getId()); |
| | | //6.在productBom中插入pHsitoryBom查询出的数据 |
| | | productBomMapper.insertBomSelectBomH(pHistory.getId(),pHistory.getSubVersionMax()); |
| | | 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); |
| | | //设为不可用版本为-1 |
| | | wrapper.eq("version",-1); |
| | | flag=mapper.update(null,wrapper); |
| | | /*if(flag>0){ |
| | | // |
| | | QueryWrapper qWrapper=new QueryWrapper(); |
| | | qWrapper.eq("parent_code",parentCode); |
| | | qWrapper.eq("custom_code",customCode); |
| | | |
| | | //1.查询当前product中的信息 |
| | | Product product=productMapper.selectOne(qWrapper); |
| | | //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); |
| | | |
| | | //2.prodcut中删除旧的产品信息 |
| | | UpdateWrapper deleteWrapper=new UpdateWrapper(); |
| | | deleteWrapper.eq("parent_code",parentCode); |
| | | deleteWrapper.eq("custom_code",customCode); |
| | | productMapper.delete(deleteWrapper); |
| | | |
| | | //3.删除productBom |
| | | if(product!=null){ |
| | | UpdateWrapper bomWrapper=new UpdateWrapper(); |
| | | bomWrapper.eq("product_id",product.getId()); |
| | | productBomMapper.delete(bomWrapper); |
| | | //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); |
| | | } |
| | | |
| | | }*/ |
| | | } |
| | | |
| | | } |
| | | //锁定和解锁记录添加 |
| | |
| | | lockLog.setParentCode(parentCode); |
| | | lockLog.setCustomCode(customCode); |
| | | lockLog.setVersion(version); |
| | | lockLog.setVersionTime(versionTime); |
| | | lockLog.setReason(reason); |
| | | lockLog.setOwner(ActionUtil.getUser().getName()); |
| | | lockLog.setCreateTime(new Date()); |
| | |
| | | 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; |
| | | } |
| | | } |