diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BtoController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BtoController.java index 400f15c..2b6dda7 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BtoController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BtoController.java @@ -1,6 +1,8 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; import cn.estsh.i3plus.ext.mes.api.base.IMesBtoJobService; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.impp.framework.base.controller.MesBaseController; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -19,8 +21,8 @@ import java.util.List; **/ @RestController @Api(description = "bto生产") -@RequestMapping( "/bto-data") -public class BtoController { +@RequestMapping(MesCommonConstant.MES_YANFEN + "/bto-data") +public class BtoController extends MesBaseController { @Autowired private IMesBtoJobService btoJobService; diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/TestController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/TestController.java index 3f074ff..661936f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/TestController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/TestController.java @@ -1,11 +1,14 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.busi; +import cn.estsh.i3plus.ext.mes.api.base.IMesBtoJobService; import cn.estsh.i3plus.ext.mes.apiservice.schedulejob.*; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; @RestController @RequestMapping("/test") @@ -27,6 +30,9 @@ public class TestController { @Autowired private MesQmsScrapJob mesQmsScrapJob; + @Autowired + private IMesBtoJobService btoJobService; + @GetMapping("/reportOrder") @ApiOperation(value = "报工") public void reportOrder() { @@ -36,7 +42,17 @@ public class TestController { @GetMapping("/mesAccount") @ApiOperation(value = "报工") public void mesAccount() { - mesAccountJob.executeMesJob(null, null); + + String organizeCode = "CK01"; + List groupCodeList = Stream.of("CS001","IP002","IP001","CS002").collect(Collectors.toList()); + btoJobService.doCreateBto(organizeCode, groupCodeList); + + //mesAccountJob.executeMesJob(null, null); + } + + @PostMapping("/bto") + public void create(@RequestParam String organizeCode, @RequestParam List groupCodeList){ + btoJobService.doCreateBto(organizeCode, groupCodeList); } @GetMapping("/generateMesAccount") diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBtoJobServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBtoJobServiceImpl.java index 326de45..e36a338 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBtoJobServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBtoJobServiceImpl.java @@ -53,7 +53,7 @@ public class MesBtoJobServiceImpl implements IMesBtoJobService { //1. 根据 organizeCode 和 groupCodeList 查询零件生产组 List mesPartProdGroups = mesPartProdGroupService.findMesPartProdGroups(organizeCode, groupCodeList); // 初始找原因 - updateCustsort(organizeCode, mesPartProdGroups); + //updateCustsort(organizeCode, mesPartProdGroups); for (MesPartProdGroup prodGroup : mesPartProdGroups) { //2. 根据生产组的infoPointCode 获取 过点信息MES_CUSTOMER_MESSAGE_POINT diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 9b157b7..87fe3cc 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -2043,20 +2043,19 @@ public class MesWorkOrderService extends BaseMesService implements public List orderBoard(MesWorkOrderBoardReqModel workOrderBoardReqModel) { List resList = new ArrayList<>(); - String sqlStr = "select mwo.part_no,mp.part_name, mwo.produce_time,mwo.qty,mwo.complete_qty,mwo.work_center_code,mwo.work_order_no,mwo.create_date_time from mes_work_order mwo\n" + + String sqlStr = "select mwo.part_no,mp.part_name, substr(mwo.create_date_time,1,10) produce_time,mwo.qty,mwo.complete_qty,mwo.work_center_code,mwo.work_order_no,mwo.create_date_time from mes_work_order mwo\n" + "left join mes_part mp\n" + "on mwo.part_no = mp.part_no and mwo.organize_code = mp.organize_code" + " where mwo.organize_code = 'CK01' and mwo.is_deleted = 2 and mwo.is_valid = 1 and work_order_status in(20, 30) and work_order_type = 30" + - " and mwo.qty > mwo.complete_qty and mwo.create_date_time > :dateTime "; + " and mwo.create_date_time > :dateTime "; if (!StringUtils.isEmpty(workOrderBoardReqModel.getWorkCenterCode())) { sqlStr += " and mwo.work_center_code = :workCenterCode "; } - sqlStr += "and produce_time is not null and produce_time != ''\n" + - "order by mwo.produce_time limit 16"; + sqlStr += "order by mwo.create_date_time limit 16"; - String dateTime = new SimpleDateFormat("yyyy-MM-dd").format(TimeTool.getDateBefore(new Date(), 10)) + " 00:00:00"; + String dateTime = new SimpleDateFormat("yyyy-MM-dd").format(TimeTool.getDateBefore(new Date(), 30)) + " 00:00:00"; Query query = entityManager.createNativeQuery(sqlStr); if (!StringUtils.isEmpty(workOrderBoardReqModel.getWorkCenterCode())) { query.setParameter("workCenterCode", workOrderBoardReqModel.getWorkCenterCode()); @@ -2114,8 +2113,40 @@ public class MesWorkOrderService extends BaseMesService implements } }); } - - return resList; + // 根据物料日期和订单时间汇总 + List mesWorkOrderBoardResModels = new ArrayList<>(); + for (MesWorkOrderBoardResModel mesWorkOrderBoardResModel : resList) { + String partNo = mesWorkOrderBoardResModel.getPartNo(); + String productDate = mesWorkOrderBoardResModel.getProductDate(); + String orderTime = mesWorkOrderBoardResModel.getOrderTime(); + String workCenterCode = mesWorkOrderBoardResModel.getWorkCenterCode(); + String partName = mesWorkOrderBoardResModel.getPartName(); + Double qty = mesWorkOrderBoardResModel.getQty(); + Double complateQty = mesWorkOrderBoardResModel.getCompleteQty(); + MesWorkOrderBoardResModel model = new MesWorkOrderBoardResModel(); + BeanUtils.copyProperties(mesWorkOrderBoardResModel, model); + boolean isNew = true; + + for (MesWorkOrderBoardResModel workOrderBoardResModel : mesWorkOrderBoardResModels) { + if (Objects.equals(mesWorkOrderBoardResModel.getWorkCenterCode(),workOrderBoardResModel.getWorkCenterCode()) && + Objects.equals(mesWorkOrderBoardResModel.getPartNo(),workOrderBoardResModel.getPartNo()) && + Objects.equals(mesWorkOrderBoardResModel.getProductDate(),workOrderBoardResModel.getProductDate()) && + Objects.equals(mesWorkOrderBoardResModel.getOrderTime(),workOrderBoardResModel.getOrderTime())) { + qty += workOrderBoardResModel.getQty(); + complateQty += workOrderBoardResModel.getCompleteQty(); + workOrderBoardResModel.setQty(qty); + workOrderBoardResModel.setCompleteQty(complateQty); + isNew = false; + } + } + if (isNew) { + mesWorkOrderBoardResModels.add(mesWorkOrderBoardResModel); + } + } + mesWorkOrderBoardResModels = mesWorkOrderBoardResModels.stream().filter(mesWorkOrderBoardResModel -> mesWorkOrderBoardResModel.getQty() > mesWorkOrderBoardResModel.getCompleteQty()).collect(Collectors.toList()); + + + return mesWorkOrderBoardResModels; }