guoyuji
2024-08-28 fb6c0942b508b14f0c97aa84e56a5cf1434c1b3f
流程卡根据订单查询和 mes报工
4个文件已修改
103 ■■■■ 已修改文件
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
@@ -339,13 +339,9 @@
    }
    @ApiOperation("汉玻获取流程卡接口")
    @PostMapping("/getProcessCardList/hanbo")
    public Result getProcessCard() {
        return Result.seccess(flowCardService.getProcessCard());
    public Result getProcessCard(@RequestBody String processCard)  {
        return Result.seccess(flowCardService.getProcessCard(processCard));
    }
    @ApiOperation("汉玻确认接收接口")
    @PostMapping("/updateProcessCardState/hanbo")
    public Result updateProcessCardState(@RequestBody Integer id) {
        return Result.seccess(flowCardService.updateProcessCardState(id));
    }
}
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
@@ -141,4 +141,11 @@
        return  Result.seccess(reportingWorkService.getPatchConditionSv(reportingWorkId));
    }
    @ApiOperation("mes报工接口")
    @PostMapping  ("/mesReportingWork")
    public Result mesReportingWork(@RequestBody Map<String,Object> reportingWork){
        return Result.seccess(reportingWorkService.mesReportingWorkSv(reportingWork));
    }
}
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -6,10 +6,12 @@
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.example.erp.common.Constants;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.sd.OrderGlassDetail;
import com.example.erp.entity.sd.OrderProcessDetail;
import com.example.erp.entity.userInfo.Log;
import com.example.erp.exception.ServiceException;
import com.example.erp.mapper.pp.FlowCardMapper;
import com.example.erp.mapper.sd.OrderGlassDetailMapper;
import com.example.erp.mapper.sd.OrderProcessDetailMapper;
@@ -682,13 +684,19 @@
    }
    public  List<FlowCard> getProcessCard() {
    public  List<FlowCard> getProcessCard(String processCard) {
        if(!processCard.contains("/")){
            throw new ServiceException(Constants.Code_600, "错误的流程卡号,请检查!");
        }
        String[] processCardList = processCard.split("/");
        List<FlowCard> flowCardList = flowCardMapper.selectList(
                new QueryWrapper<FlowCard>().eq("termination_status", 0)
                        .orderByDesc("id")
                new QueryWrapper<FlowCard>()
                        .eq("process_id", processCardList[0])
                        .eq("technology_number", processCardList[1])
        );
        for (FlowCard flowCard : flowCardList) {
            flowCard.setProcessId(flowCard.getProcessId()+'/'+flowCard.getTechnologyNumber());
            flowCard.setOrderGlassDetail(
                    orderGlassDetailMapper.selectOne(
                            new QueryWrapper<OrderGlassDetail>()
@@ -706,12 +714,6 @@
        return flowCardList;
    }
    public Boolean updateProcessCardState(Integer id) {
        UpdateWrapper<FlowCard> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id", id) // 根据id更新
                .set("termination_status", 1);
        return flowCardMapper.update(null, updateWrapper) > 0;
    }
}
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -24,6 +24,7 @@
import com.example.erp.service.userInfo.LogService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
@@ -611,4 +612,67 @@
        String count=reportingWorkMapper.getPatchConditionMp(reportingWorkId);
        return count;
    }
    @Transactional(rollbackFor = Exception.class)
    public Boolean mesReportingWorkSv(Map<String,Object> reportingWorkMap) {
        //设置回滚点
        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
        //接收解析主附表信息
        JSONObject reportingWorkJson = new JSONObject(reportingWorkMap);
        ReportingWork reportingWork = JSONObject.parseObject(JSONObject.toJSONString(reportingWorkJson.get("title")), ReportingWork.class);
        ReportingWorkDetail reportingWorkDetail =JSON.parseObject(JSONObject.toJSONString(reportingWorkJson.get("detail")), ReportingWorkDetail.class);
        int processNum = reportingWorkMapper.selectGlassProcessNum(
                reportingWorkDetail.getOrderNumber(),
                reportingWorkDetail.getTechnologyNumber(),
                reportingWork.getProcessId(),
                reportingWork.getThisProcess()
        );
        //判断是否大于当前数量并且抛出异常
        if (processNum < (reportingWorkDetail.getBreakageQuantity() + reportingWorkDetail.getCompletedQuantity())) {
            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
            throw new ServiceException(Constants.Code_600, "上工序已完工数量小于本工序报工数量,请检查");
        }
        //获取当前最大报工单号生成报工单号
        String formattedNumber = String.format("%04d", reportingWorkMapper.selectMaxReportingWorkId() + 1);
        //格式化当前日期
        Date currentDate = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
        String formattedDate = dateFormat.format(currentDate);
        String reportingWorkId = "BG" + formattedDate + formattedNumber;
        reportingWork.setReportingWorkId(reportingWorkId);
        reportingWorkDetail.setReportingWorkId(reportingWorkId);
        reportingWorkMapper.insert(reportingWork);
        reportingWorkDetailMapper.insert(reportingWorkDetail);
        OrderProcessDetail orderProcessDetail = new OrderProcessDetail();
        orderProcessDetail.setBrokenNum(reportingWorkDetail.getBreakageQuantity());
        orderProcessDetail.setReportingWorkNum(reportingWorkDetail.getCompletedQuantity());
        orderProcessDetail.setReportingWorkNumCount(reportingWorkDetail.getCompletedQuantity());
        //根据订单id,订单序号,以及小片序号 更新小片流程的完工数量以及刺破数量
        LambdaUpdateWrapper<OrderProcessDetail> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.eq(OrderProcessDetail::getOrderNumber, reportingWorkDetail.getOrderNumber())
                .eq(OrderProcessDetail::getProcessId, reportingWork.getProcessId().substring(0, 14))
                .eq(OrderProcessDetail::getOrderId, reportingWork.getOrderId())
                .eq(OrderProcessDetail::getProcess, reportingWork.getThisProcess())
                .eq(OrderProcessDetail::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
                .setSql("reporting_work_num_count = reporting_work_num_count +" + orderProcessDetail.getReportingWorkNum())
                .setSql("reporting_work_num =reporting_work_num +" + orderProcessDetail.getReportingWorkNum());
        orderProcessDetailMapper.update(null, updateWrapper);
        //String thisProcess = reportingWork.getThisProcess();
        //reportingWorkMapper.
        return true;
    }
}