guoyujie
1 天以前 91b61fe723df498d62c596372521d426299f0f8b
north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java
@@ -3,13 +3,19 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.erp.dto.pp.PatchLogAddDTO;
import com.example.erp.dto.pp.PatchLogDTO;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.pp.PatchLog;
import com.example.erp.entity.pp.Rework;
import com.example.erp.entity.pp.ReportingWork;
import com.example.erp.entity.userInfo.Log;
import com.example.erp.entity.userInfo.SysError;
import com.example.erp.mapper.pp.FlowCardMapper;
import com.example.erp.mapper.pp.PatchLogMapper;
import com.example.erp.mapper.pp.ReportingWorkMapper;
import com.example.erp.service.userInfo.LogService;
import com.example.erp.service.userInfo.SysErrorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -23,20 +29,36 @@
@DS("pp")
@Transactional(rollbackFor = Exception.class)
public class ReplenishService {
    @Autowired
    final
    PatchLogMapper patchMapper;
    @Autowired
    final
    SysErrorService sysErrorService;
    final
    ReportingWorkMapper reportingWorkMapper;
    public List<Map<String, Object>> getSelectReplenish(Integer pageNum, Integer pageSize) {
    final
    FlowCardMapper flowCardMapper;
    final LogService logService;
    public ReplenishService(PatchLogMapper patchMapper, SysErrorService sysErrorService, ReportingWorkMapper reportingWorkMapper,FlowCardMapper flowCardMapper,LogService logService) {
        this.patchMapper = patchMapper;
        this.sysErrorService = sysErrorService;
        this.reportingWorkMapper = reportingWorkMapper;
        this.flowCardMapper = flowCardMapper;
        this.logService = logService;
    }
    public List<PatchLogAddDTO> getSelectReplenish(Integer pageNum, Integer pageSize,PatchLogAddDTO patchLogAddDTO) {
        Integer offset = (pageNum - 1) * pageSize;
        return patchMapper.getSelectReplenish(offset,pageSize);
        return patchMapper.getSelectReplenish(offset,pageSize,patchLogAddDTO);
    }
    public Map<String, Object> SelectReplenish(Integer pageNum, Integer pageSize,List<String> selectDate,PatchLog patchLog) {
    public Map<String, Object> SelectReplenish(Integer pageNum, Integer pageSize, List<String> selectDate, PatchLogDTO patchLogDTO) {
        Integer offset = (pageNum-1)*pageSize;
        String endDate = LocalDate.now().toString();
        String startDate = LocalDate.now().minusDays(15).toString();
@@ -49,8 +71,8 @@
            }
        }
        Map<String,Object> map = new HashMap<>();
        map.put("data",patchMapper.SelectReplenish(offset,pageSize,startDate,endDate,patchLog));
        map.put("total",patchMapper.SelectReplenishPageTotal(offset,pageSize,startDate,endDate,patchLog));
        map.put("data",patchMapper.SelectReplenish(offset,pageSize,startDate,endDate,patchLogDTO));
        map.put("total",patchMapper.SelectReplenishPageTotal(offset,pageSize,startDate,endDate,patchLogDTO));
        List<String> list = new ArrayList<>();
        list.add(startDate);
@@ -79,6 +101,7 @@
                    //添加返工记录,修改次破明细数量
                    patchMapper.insertReplenish(patchLog,oddNumber);
                    patchMapper.updateDamageDetails(patchLog);
                    patchMapper.updateReportingWorkDetail(patchLog.getReportingWorkId(), Integer.valueOf(patchLog.getOrderSort()),patchLog.getTechnologyNumber());
                }
            }
@@ -92,6 +115,14 @@
            saveState = false;
        }
        //保存日志
        Log log = new Log();
        log.setContent(object.toString());
        log.setFunction("saveReplenish补片新增");
        log.setOperatorId((String) object.get("userId"));
        log.setOperator((String) object.get("userName"));
        logService.saveLog(log);
        return saveState;
@@ -113,10 +144,25 @@
            List<PatchLog> patchLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("patchLog")), PatchLog.class);
            if (!patchLoglist.isEmpty()){
                for (PatchLog patchLog : patchLoglist) {
                    //审核
                    patchMapper.updateReplenish(patchLog,userName);
                    //修改小片流程卡数量
                    patchMapper.updateOrderProcessDetail(patchLog);
                    PatchLog patchLog1=patchMapper.selectOne(new QueryWrapper<PatchLog>().eq("id",patchLog.getId()));
                    //判断是否已经审核
                    if(patchLog1.getReviewStatus()==0){
                        ReportingWork reportingWork = reportingWorkMapper
                                .selectOne(new QueryWrapper<ReportingWork>().eq("reporting_work_id",patchLog.getReportingWorkId()));
                        //修改小片流程卡数量
                        patchMapper.updateOrderProcessDetail(patchLog,reportingWork);
                        //审核
                        patchMapper.updateReplenish(patchLog,userName);
                    }else{
                        saveState = false;
                    }
                    Log log = new Log();
                    log.setContent(object.toString());
                    log.setFunction("updateReplenish补片审核");
                    log.setOperatorId((String) object.get("userId"));
                    log.setOperator((String) object.get("userName"));
                    logService.saveLog(log);
                }
            }
@@ -125,7 +171,7 @@
            //将异常传入数据库
            SysError sysError = new SysError();
            sysError.setError(e.toString());
            sysError.setFunc("saveOrder");
            sysError.setFunc("updateReplenish");
            sysErrorService.insert(sysError);
            saveState = false;
@@ -141,10 +187,15 @@
        if(Objects.equals(type, "补片")){
            alias="BP";
        }
        //查询当天的最大数量
        Integer maximum=patchMapper.getMaximum();
        //查询当天最新的编号
        String str=patchMapper.getMaximum();
        if (str == null){
            str="00";
        }
        String maximum = str.substring(str.length() - 2);
        int lastTwoInteger = Integer.parseInt(maximum);
        //设置两位不够补0
        String formattedNumber = String.format("%02d", maximum+1);
        String formattedNumber = String.format("%02d", lastTwoInteger+1);
        //格式化当前日期
        Date currentDate = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
@@ -153,8 +204,146 @@
        return oddNumbers;
    }
    public Object selectPrintSv(java.sql.Date selectTime1, java.sql.Date selectTime2, FlowCard flowCard) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.selectReplenishPrintMp(selectTime1,selectTime2,flowCard));
        map.put("type", flowCardMapper.selectType());
        return map;
    }
    public Map<String, Object> getSelectPrintCustomLabelSv(String type, Integer lableType, Map<String, Object> object) {
        Map<String, Object> map = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                if (lableType != 2){//成品标签
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getRepairPrintCustomData(flowCard.getProcessId(),flowCard.getTechnologyNumber(),flowCard.getReportingWorkId(),flowCard.getOrderNumber()));
                    list.add(itemmap);
                }
                else{//小片标签
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getRepairPrintCustomDataSemi(flowCard.getProcessId(),flowCard.getTechnologyNumber(),flowCard.getReportingWorkId(),flowCard.getOrderNumber()));
                    list.add(itemmap);
                }
            }
        }
        map.put("data", list);
        map.put("title", flowCardMapper.getPrintTitle(type));
        return map;
    }
    public Boolean deleteReplenishSv(Map<String, Object> object) {
        boolean saveState = true;
        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
        try {
            String userName = "";
            String userId = "";
            if (object.get("userName") != null) {
                userName = object.get("userName").toString();
            }
            if (object.get("userId") != null) {
                userId = object.get("userId").toString();
            }
            //获取对象集合循环进行新增修改
            List<PatchLog> patchLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("patchLog")), PatchLog.class);
            if (!patchLoglist.isEmpty()){
                for (PatchLog patchLog : patchLoglist) {
                    PatchLog patchLog1=patchMapper.selectOne(new QueryWrapper<PatchLog>().eq("id",patchLog.getId()));
                    //判断是否已经审核
                    if(patchLog1.getReviewStatus()==0){
                        //删除补片表对应补片id数据
                        patchMapper.deleteReplenishMp(patchLog1.getId());
                        //删除次破明细表
                        patchMapper.updatePatchDdMp(patchLog1.getReportingWorkId(),patchLog1.getOrderSort(),patchLog1.getTechnologyNumber(),patchLog1.getPatchNum(),patchLog1.getPatchReason());
                        //修改报工明细表状态
                        patchMapper.updatePatchBgMp(patchLog1.getReportingWorkId(),patchLog1.getOrderSort(),patchLog1.getTechnologyNumber());
                        //修改报工主表次破数量
                        reportingWorkMapper.updateRWPatchNum(patchLog1.getReportingWorkId(),patchLog1.getPatchNum());
                        //修改报工副表次破数量
                        reportingWorkMapper.updateRWDPatchNum(patchLog1.getReportingWorkId(),patchLog1.getOrderSort(),patchLog1.getTechnologyNumber(),patchLog1.getPatchNum());
                        //更新报工流程表数据
                        reportingWorkMapper.updateReplenishWorkProcess(patchLog1.getProcessId(),patchLog1.getOrderSort(),patchLog1.getTechnologyNumber(),patchLog1.getPatchNum(),patchLog1.getPatchProcesses());
                    }
                    else{
                        saveState = false;
                    }
                }
            }
        } catch (Exception e) {
            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
            //将异常传入数据库
            SysError sysError = new SysError();
            sysError.setError(e.toString());
            sysError.setFunc("deleteReplenishSv");
            sysErrorService.insert(sysError);
            saveState = false;
        }
        return saveState;
    }
    public Boolean updateCancelReviewSv(Map<String, Object> object) {
        boolean saveState = true;
        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
        //try {
            String userName = "";
            String userId = "";
            if (object.get("userName") != null) {
                userName = object.get("userName").toString();
            }
            if (object.get("userId") != null) {
                userId = object.get("userId").toString();
            }
            //获取对象集合循环进行新增修改
            List<PatchLog> patchLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("patchLog")), PatchLog.class);
            if (!patchLoglist.isEmpty()){
                for (PatchLog patchLog : patchLoglist) {
                    //查询是否已生成工程号
                    Integer projectCount = patchMapper.selectProjectCount(patchLog.getProcessId(),patchLog.getPatchId(),patchLog.getTechnologyNumber());
                    //查询流程卡工艺流程
                    String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(patchLog.getProcessId(), String.valueOf(patchLog.getTechnologyNumber()));
                    if (projectCount == 0){
                        if (technologicalProcess!=null || !technologicalProcess.equals("")) {
                            String[] processList = technologicalProcess.split("->");
                            //获取工艺流程第一个工序
                            String interceptProcess = processList[0];
                            Integer firstStep=reportingWorkMapper.getFirstStep(patchLog.getProcessId(),patchLog.getOrderSort(),patchLog.getTechnologyNumber(),interceptProcess);
                            if (firstStep>=patchLog.getPatchNum()){
                                ReportingWork reportingWork = reportingWorkMapper
                                        .selectOne(new QueryWrapper<ReportingWork>().eq("reporting_work_id",patchLog.getReportingWorkId()));
                                //修改小片流程卡数量
                                patchMapper.updateOrderProcessDetailCancel(patchLog,reportingWork);
                                //审核
                                patchMapper.updateReplenishCancel(patchLog);
                            }
                            else {
                                saveState = false;
                            }
                        }else{
                            saveState = false;
                        }
                        Log log = new Log();
                        log.setContent(object.toString());
                        log.setFunction("updateCancelReviewSv补片反审");
                        log.setOperatorId((String) object.get("userId"));
                        log.setOperator((String) object.get("userName"));
                        logService.saveLog(log);
                    } else {
                        saveState = false;
                    }
                }
            }
        return saveState;
    }
}