From 2fb28b36f15de26249ae34160e1accf118c011c7 Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期五, 17 十一月 2023 16:47:17 +0800 Subject: [PATCH] Changes16 --- mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO2.java | 3 + mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/RawMaterialMapper.java | 12 ++++ mes-plan/src/main/java/com/chinaztt/mes/plan/entity/RawMaterial.java | 31 ++++++++++ mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO.java | 5 + mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java | 15 +++- mes-plan/src/main/java/com/chinaztt/mes/plan/entity/CustomerOrder.java | 2 mes-plan/src/main/java/com/chinaztt/mes/plan/entity/ProcurementPlan.java | 36 ++++++++++++ mes-plan/src/main/java/com/chinaztt/mes/plan/controller/MasterProductionScheduleController.java | 5 - mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/ProcurementPlanMapper.java | 11 +++ mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/MasterProductionScheduleServiceImpl.java | 44 ++++++++++++-- mes-plan/src/main/resources/mapper/CustomerOrderMapper.xml | 4 + mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PartServiceImpl.java | 5 + 12 files changed, 155 insertions(+), 18 deletions(-) diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PartServiceImpl.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PartServiceImpl.java index 1a1c2c9..50ec42c 100644 --- a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PartServiceImpl.java +++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PartServiceImpl.java @@ -480,6 +480,7 @@ //瑙﹀彂闆朵欢 @Override public String triggerAdd(PartVo partVo) { + log.info("鎺ユ敹涓绘暟鎹钩鍙版暟鎹负===================銆�"+JSONObject.toJSONString(partVo)); Part part = new Part(); BeanUtils.copyProperties(partVo,part); //鍒涘缓鑰� @@ -489,9 +490,9 @@ //闆朵欢鍙� part.setPartNo(partVo.getMaterial_number()); //鍚嶇О - part.setPartName(partVo.getMaterial_name()); + part.setPartName(partVo.getMaterial_description()); //闆朵欢鎻忚堪 - part.setDescription(partVo.getMaterial_description()); + part.setDescription(partVo.getMaterial_name()); //鍗曚綅 part.setUnit(partVo.getUnit()); //涓�绾у垎绫� diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/controller/MasterProductionScheduleController.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/controller/MasterProductionScheduleController.java index 80fb285..b9dd444 100644 --- a/mes-plan/src/main/java/com/chinaztt/mes/plan/controller/MasterProductionScheduleController.java +++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/controller/MasterProductionScheduleController.java @@ -15,7 +15,6 @@ import com.chinaztt.mes.technology.service.StructureService; import com.chinaztt.ztt.common.core.util.R; import com.chinaztt.ztt.common.log.annotation.SysLog; -import com.chinaztt.ztt.common.security.annotation.Inner; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -356,8 +355,8 @@ @ApiOperation(value = "閫氳繃涓昏鍒掓煡璇fs搴撳瓨鐢熶骇閲囪喘璁″垝", notes = "閫氳繃涓昏鍒掓煡璇fs搴撳瓨鐢熶骇閲囪喘璁″垝") @PostMapping("/addPlanPurchasing") - @Inner(value = false) - public R addPlanPurchasing(@RequestParam(required = false) List<MasterProductionSchedule>masterProductionSchedules){ + //@Inner(value = false) + public R addPlanPurchasing(@RequestBody List<MasterProductionSchedule>masterProductionSchedules){ return R.ok(masterProductionScheduleService.addPlanPurchasing(masterProductionSchedules)); } diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/entity/CustomerOrder.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/entity/CustomerOrder.java index bb82473..f07ff54 100644 --- a/mes-plan/src/main/java/com/chinaztt/mes/plan/entity/CustomerOrder.java +++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/entity/CustomerOrder.java @@ -110,7 +110,7 @@ private String partNo; @ApiModelProperty(value = "闆朵欢缂栧彿锛氱敤浜庣敓浜х殑闆朵欢鍙�") - private String partId; + private Long partId; /** * 鏁伴噺 */ diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/entity/ProcurementPlan.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/entity/ProcurementPlan.java new file mode 100644 index 0000000..c75a5ed --- /dev/null +++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/entity/ProcurementPlan.java @@ -0,0 +1,36 @@ +package com.chinaztt.mes.plan.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; + +/** + * @Author 寮犲 + * @Date 2023/11/17 + */ +@Data +@TableName("plan_procurement") +@ApiModel("閲囪喘璁″垝") +@EqualsAndHashCode(callSuper = true) +public class ProcurementPlan extends Model<ProcurementPlan> { + + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + private Long pLanPartId; + + private String partName; + + private BigDecimal requiresNum; + + private Long planId; + + private Integer state; + +} diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/entity/RawMaterial.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/entity/RawMaterial.java new file mode 100644 index 0000000..9248261 --- /dev/null +++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/entity/RawMaterial.java @@ -0,0 +1,31 @@ +package com.chinaztt.mes.plan.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; + +/** + * @Author 寮犲 + * @Date 2023/11/17 + */ +@Data +@TableName("plan_raw_material") +@ApiModel("閲囪喘璁″垝") +@EqualsAndHashCode(callSuper = true) +public class RawMaterial extends Model<RawMaterial> { + + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + private Long planId; + + private Long partId; + + private BigDecimal reservationNum; +} diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/ProcurementPlanMapper.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/ProcurementPlanMapper.java new file mode 100644 index 0000000..2c221a2 --- /dev/null +++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/ProcurementPlanMapper.java @@ -0,0 +1,11 @@ +package com.chinaztt.mes.plan.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chinaztt.mes.plan.entity.ProcurementPlan; + +/** + * @Author 寮犲 + * @Date 2023/11/17 + */ +public interface ProcurementPlanMapper extends BaseMapper<ProcurementPlan> { +} diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/RawMaterialMapper.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/RawMaterialMapper.java new file mode 100644 index 0000000..403984f --- /dev/null +++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/RawMaterialMapper.java @@ -0,0 +1,12 @@ +package com.chinaztt.mes.plan.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chinaztt.mes.plan.entity.RawMaterial; + +/** + * @Author 寮犲 + * @Date 2023/11/17 + */ +public interface RawMaterialMapper extends BaseMapper<RawMaterial> { + +} diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java index 01b4adc..f76773e 100644 --- a/mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java +++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java @@ -259,11 +259,14 @@ if (isAudit.equals(AuditStateStringValues.ACCEPTED)) { //TODO: 瑕佸姞闆朵欢id鍙傛暟 Document document = documentMapper.selectById(customerOrder.getTechnologyDocumentId()); - Part part = partMapper.selectOne(Wrappers.<Part>lambdaQuery().eq(Part::getEngChgLevel, "1").eq(Part::getId,customerOrder.getPartId() )); + if( null == document){ + throw new RuntimeException("缂哄皯宸ヨ壓鏂囦欢"); + } + Part part = partMapper.selectOne(Wrappers.<Part>lambdaQuery().eq(Part::getEngChgLevel, "1").eq(Part::getId,document.getPartId() )); if (null == part) { throw new RuntimeException("鏍规嵁闆朵欢缂栧彿 = 銆�" + customerOrder.getPartNo() + "銆慚ES鏈湴鏌ユ棤鍖归厤闆朵欢瀵硅薄"); } - if (!part.getMaterialType().equals("3") && null == document) { + if (!"3".equals(part.getMaterialType())) { throw new RuntimeException("缂哄皯宸ヨ壓鏂囦欢"); } customerOrder.setCoState(CustomerOrderStateStringValues.PLAN); @@ -347,6 +350,9 @@ @Override public boolean createMasterProductionSchedule(List<CustomerOrderDTO> customerOrderDTOList) { + customerOrderDTOList.forEach(c->{ + log.info("涓荤敓浜ц鍒�------------>"+JSONObject.toJSONString(c)); + }); List<Long> ids = customerOrderDTOList.stream().map(CustomerOrderDTO::getId).collect(Collectors.toList()); Integer count = getBaseMapper().selectCount(Wrappers.<CustomerOrder>lambdaQuery() .ne(CustomerOrder::getIsAudit, AuditStateStringValues.ACCEPTED) @@ -384,11 +390,12 @@ masterProductionSchedule.setDocNumber(customerOrderDTO.getDocNumber()); //闇�姹傛暟閲� masterProductionSchedule.setQtyRequired(qta); - //闇�姹傛棩鏈� - masterProductionSchedule.setRequiredDate(customerOrderDTO.getDeliveryDate()); + //鎵胯鏃ユ湡 + masterProductionSchedule.setPromisedDeliveryDate(customerOrderDTO.getDeliveryDate()); //澶囨敞 masterProductionSchedule.setRemark(customerOrderDTO.getRemark()); masterProductionSchedule.setQtyRequired(qta); + //瀹㈡埛闇�姹傛棩鏈� masterProductionSchedule.setRequiredDate(customerOrderDTO.getWantedDeliveryDate()); masterProductionSchedule.setRemark(customerOrderDTO.getRemark()); masterProductionSchedule.setSource("閿�鍞鍗�"); diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/MasterProductionScheduleServiceImpl.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/MasterProductionScheduleServiceImpl.java index 510d7b7..9ce7fc6 100644 --- a/mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/MasterProductionScheduleServiceImpl.java +++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/MasterProductionScheduleServiceImpl.java @@ -3,6 +3,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -28,12 +29,14 @@ import com.chinaztt.mes.plan.state.masterproductionschedule.MasterProductionScheduleStateMachineConfig; import com.chinaztt.mes.plan.state.masterproductionschedule.constant.MasterProductionScheduleEvents; import com.chinaztt.mes.plan.state.masterproductionschedule.constant.MasterProductionScheduleStates; +import com.chinaztt.mes.technology.dto.BomDTO; +import com.chinaztt.mes.technology.dto.StructureTree; import com.chinaztt.mes.technology.entity.Document; +import com.chinaztt.mes.technology.entity.JoinDocumentBomRouting; import com.chinaztt.mes.technology.entity.Routing; import com.chinaztt.mes.technology.entity.Structure; -import com.chinaztt.mes.technology.mapper.DocumentMapper; -import com.chinaztt.mes.technology.mapper.RoutingMapper; -import com.chinaztt.mes.technology.mapper.StructureMapper; +import com.chinaztt.mes.technology.mapper.*; +import com.chinaztt.mes.technology.service.BomService; import com.chinaztt.mes.technology.service.DocumentService; import com.chinaztt.mes.technology.state.document.constant.DocumentStates; import com.chinaztt.ztt.admin.api.vo.TreeUtil; @@ -88,6 +91,12 @@ private StateMachineFactory<MasterProductionScheduleStates, MasterProductionScheduleEvents> masterproductionscheduleStateMachineFactory; private StateMachinePersister<MasterProductionScheduleStates, MasterProductionScheduleEvents, MasterProductionSchedule> persister; private MoStructureComponentMapper moStructureComponentMapper; + private JoinDocumentBomRoutingMapper joinDocumentBomRoutingMapper; + private BomComponentMapper bomComponentMapper; + private BomService bomService; + private ProcurementPlanMapper procurementPlanMapper; + private RawMaterialMapper rawMaterialMapper; + @Override public IPage<List<MasterProductionScheduleDTO>> getMasterProductionSchedulePage(Page page, QueryWrapper<MasterProductionScheduleDTO> masterProductionScheduleDTO) { @@ -468,16 +477,19 @@ @Override public boolean addPlanPurchasing(List<MasterProductionSchedule>masterProductionSchedules) { masterProductionSchedules.forEach(p->{ + System.out.println("----------------->"+p); Long technologyDocumentId = p.getTechnologyDocumentId(); Document document = documentMapper.selectById(technologyDocumentId); Long firstPart = document.getPartId(); + JoinDocumentBomRouting joinDocumentBomRouting = joinDocumentBomRoutingMapper.selectOne(new QueryWrapper<JoinDocumentBomRouting>().lambda() + .eq(JoinDocumentBomRouting::getDocumentId, document.getId()).eq(JoinDocumentBomRouting::getPartId, firstPart)); + BomDTO bomDtoById = bomService.getBomDtoById(joinDocumentBomRouting.getBomId()); + StructureTree tree = bomDtoById.getTree(); + BigDecimal total=p.getQtyRequired().multiply(tree.getOriginalQpa()); List<MoStructureComponent> moStructureComponents = moStructureComponentMapper.selectList(new QueryWrapper<MoStructureComponent>().lambda().eq(MoStructureComponent::getPlanManufacturingOrderId, p.getId())); moStructureComponents.forEach(m->{ Part part = partMapper.selectById(m.getPartId()); - String url="http://192.168.20.47:8008/PurchService.ashx?contract=ZTKJ&contractKey=4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo=&procedureName=QUERY_INVENTORY_INFO_STD&userId=7632&inAttr={\"LOCATION_NO\": \"1019\",\"PART_NO\":"+part.getPartNo()+"}"; - String body = HttpRequest.get(url).execute().body(); - JSONObject partInfo = JSONObject.parseObject(body); - log.info("搴撳瓨闆朵欢==================================>"+partInfo); + }); }); return false; @@ -485,6 +497,24 @@ + public void getPlanPurchase(List<StructureTree> children,List<ProcurementPlan> planList,BigDecimal originalQpa,long planId){ + children.forEach(l->{ + String url="http://192.168.20.47:8008/PurchService.ashx?contract=ZTKJ&contractKey=4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo=&procedureName=QUERY_INVENTORY_INFO_STD&userId=7632&inAttr={\"LOCATION_NO\": \"1019\",\"PART_NO\":"+l.getPartNo()+"}"; + String body = HttpRequest.get(url).execute().body(); + JSONObject result = JSONObject.parseObject(body); + log.info("搴撳瓨闆朵欢==================================>"+result); + JSONArray listInfo = result.getJSONArray("LIST_INFO"); + listInfo.forEach(i->{ + JSONObject data = JSONObject.parseObject(i.toString()); + //Ifs褰撳墠闆朵欢搴撳瓨鏁伴噺 + BigDecimal qtyOnhand = data.getBigDecimal("QTY_ONHAND"); + //闇�瑕佺敓浜у灏戞暟閲� + BigDecimal multiply = l.getOriginalQpa().multiply(originalQpa); + BigDecimal subtract = qtyOnhand.subtract(multiply); + + }); + }); + } } diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO.java index 61a4bfa..b7eca06 100644 --- a/mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO.java +++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO.java @@ -10,6 +10,11 @@ public class CustomerOrderVO { /** + * 闆朵欢Id + */ + private Long partId; + + /** * 闆朵欢鍙凤細鐢ㄤ簬鐢熶骇鐨勯浂浠跺彿 */ @ApiModelProperty(value = "闆朵欢鍙凤細鐢ㄤ簬鐢熶骇鐨勯浂浠跺彿") diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO2.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO2.java index b3a6ba9..271d3f2 100644 --- a/mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO2.java +++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/vo/CustomerOrderVO2.java @@ -28,6 +28,9 @@ //涓嬪崟鏃ユ湡 private LocalDateTime placeOrderDate; + //瀹㈡埛闇�姹傛椂闂� + private LocalDateTime wantedDeliveryDate; + //浜よ揣鏃堕棿 private LocalDateTime deliveryDate; diff --git a/mes-plan/src/main/resources/mapper/CustomerOrderMapper.xml b/mes-plan/src/main/resources/mapper/CustomerOrderMapper.xml index 928ac0b..9d6f977 100644 --- a/mes-plan/src/main/resources/mapper/CustomerOrderMapper.xml +++ b/mes-plan/src/main/resources/mapper/CustomerOrderMapper.xml @@ -267,6 +267,7 @@ <result property="deliveryDate" column="delivery_date"/> <result property="manufactureAttr" column="manufacture_attr"/> <result property="remark" column="remark"/> + <result property="wantedDeliveryDate" column="wanted_delivery_date"/> </resultMap> <!-- 闇�瑕佸鐞� --> @@ -295,7 +296,8 @@ sales_man , delivery_date, manufacture_attr, - pco.remark + pco.remark, + wanted_delivery_date FROM plan_customer_order pco LEFT JOIN plan_customer pc ON pc."id" = pco.customer_id -- Gitblit v1.9.3