lxw
2023-09-21 c0f194e692337993a996baf6a153598a21876ee1
src/main/java/com/whyc/service/ProductHistoryService.java
@@ -8,15 +8,16 @@
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.ProductBom;
import com.whyc.pojo.ProductBomHistory;
import com.whyc.pojo.ProductHistory;
import org.apache.poi.hssf.record.ProtectionRev4Record;
import com.whyc.pojo.ProductLockLog;
import com.whyc.util.ActionUtil;
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.List;
@Service
@@ -32,6 +33,9 @@
    @Autowired(required = false)
    private ProductBomHistoryMapper productBomHistoryMapper;
    @Autowired
    private ProductLockLogService lockLogService;
    //产品详情查看版本信息
    public Response getProductVersion(String parentCode,String customCode) {
@@ -79,7 +83,8 @@
        return mapper.selectOne(query);
    }
    //历史版本可用性设定
    public Response setpHistoryEnable(String parentCode, String customCode, int version, int enabled) {
    @Transactional
    public Response setpHistoryEnable(String parentCode, String customCode, int version, int enabled, String reason, String versionTime) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("parent_code",parentCode);
        wrapper.eq("custom_code",customCode);
@@ -116,17 +121,44 @@
                    // 5.在product中插入设定可用的pHistory
                    productMapper.insertPselectPH(pHistory.getId());
                    //6.在productBom中插入pHsitoryBom查询出的数据
                    productBomMapper.insertBomSelectBomH(pHistory.getId());
                    productBomMapper.insertBomSelectBomH(pHistory.getId(),pHistory.getSubVersionMax());
                }
            }
        }else{
            wrapper.eq("version",version);
            wrapper.set("enabled",0);
            flag=mapper.update(null,wrapper);
            if(flag>0){
            //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.查询产品是否存在物料时钣金件的产品
            Material material_0120=productMapper.selectMaterial_0120(parentCode,customCode);
            //如果存在则锁定
            if(material_0120!=null){
                //先锁定历史
                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){
                //
                QueryWrapper qWrapper=new QueryWrapper();
                qWrapper.eq("parent_code",parentCode);
                qWrapper.eq("custom_code",customCode);
                //1.查询当前product中的信息
                Product product=productMapper.selectOne(qWrapper);
@@ -143,8 +175,25 @@
                    productBomMapper.delete(bomWrapper);
                }
            }
            }*/
        }
        //锁定和解锁记录添加
        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{ //解锁
                lockLog.setLockFlag(0);
            }
            lockLogService.insert(lockLog);
        }
        return new Response().set(1,flag>0,"历史版本可用性设定");
    }
@@ -152,4 +201,22 @@
    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;
    }
}