inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java
@@ -34,6 +34,14 @@ @Resource Jwt jwt; @ApiOperation(value = "新增原材料检验单-->根据原材料编码得到ifs中的报检数据") @ApiImplicitParams(value = { @ApiImplicitParam(name = "code", value = "原材料编码", dataTypeClass = String.class, required = true) }) @PostMapping("/chooseIFS") public Result chooseIFS(String code){ return Result.success(rawInspectService.chooseIFS(code)); } @ApiOperation(value = "新增原材料检验单") @PostMapping("/addRawInspects") inspect-server/src/main/java/com/yuanchu/mom/mapper/RawInspectMapper.java
@@ -32,7 +32,8 @@ //清空检验结论 void updById(Integer rawInspectId); //根据原材料编码查询最近一条数据 RawInspect selOneByCode(String code); } inspect-server/src/main/java/com/yuanchu/mom/pojo/RawInspect.java
@@ -1,5 +1,6 @@ package com.yuanchu.mom.pojo; import cn.hutool.core.date.DateTime; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; @@ -101,8 +102,8 @@ /** * 来料日期 */ @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date formTime; @TableField(exist = false) inspect-server/src/main/java/com/yuanchu/mom/pojo/vo/RawInspectVo.java
@@ -1,5 +1,6 @@ package com.yuanchu.mom.pojo.vo; import cn.hutool.core.date.DateTime; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; @@ -23,9 +24,9 @@ * 来料日期 */ @NotNull(message = "来料日期不能为空!") @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date formTime; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private DateTime formTime; /** * 型号规格 inspect-server/src/main/java/com/yuanchu/mom/service/RawInspectService.java
@@ -18,6 +18,13 @@ public interface RawInspectService extends IService<RawInspect> { /** *新增原材料检验单-->根据原材料编码得到ifs中的报检数据 * @param code * @return */ RawInspectVo chooseIFS(String code); /** * 新增原材料检验单 * @param userId * @param rawInspectVo @@ -48,4 +55,5 @@ */ String updateRawInspectsById(Integer id); } inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
@@ -1,9 +1,12 @@ package com.yuanchu.mom.service.impl; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.Task.SyncOrder; import com.yuanchu.mom.mapper.*; import com.yuanchu.mom.pojo.*; import com.yuanchu.mom.pojo.vo.RawInsProductVo; @@ -12,6 +15,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @@ -38,6 +42,42 @@ @Resource UserMapper userMapper; //新增原材料检验单-->根据原材料编码得到ifs中的报检数据 @Override public RawInspectVo chooseIFS(String code) { RawInspectVo rawInspectVo = new RawInspectVo(); List<Map<String, Object>> mapList = SyncOrder.ifsInterfaces(); for (Map<String, Object> map : mapList) { if (map.get("STATE").equals("已接收")) { if (map.get("PART_NO").toString().equals(code)) { rawInspectVo.setCode(map.get("PART_NO").toString()); //原材料编码 String[] split = map.get("PART_DESC").toString().split(","); rawInspectVo.setName(split[0]); //原材料名称 rawInspectVo.setSpecifications(split[1]); //型号规格 rawInspectVo.setUnit(map.get("BUY_UNIT_MEAS").toString()); //单位 rawInspectVo.setNumber(Integer.parseInt(String.valueOf(map.get("QTY_TO_INSPECT")))); //数量 rawInspectVo.setFormTime(DateUtil.parse(map.get("APPROVED_DATE").toString())); //来料日期 rawInspectVo.setSupplier(map.get("SUPPLIER_NAME").toString()); //供应商 } } } //查询该原材料是否有检验项目记录 RawInspect rawInspect = rawInspectMapper.selOneByCode(code); if (ObjectUtils.isNotEmpty(rawInspect)){ List<RawInsProduct> rawInsProductList = rawInsProductMapper.selectList(Wrappers.<RawInsProduct>query().eq("raw_inspect_id", rawInspect.getId())); List<RawInsProductVo> rawInsProductVos = rawInsProductList.stream().map(rawInsProduct -> { RawInsProductVo rawInsProductVo = new RawInsProductVo(); rawInsProductVo.setName(rawInsProduct.getName()); rawInsProductVo.setUnit(rawInsProduct.getUnit()); rawInsProductVo.setRequired(rawInsProduct.getRequired()); rawInsProductVo.setInternal(rawInsProduct.getInternal()); return rawInsProductVo; }).collect(Collectors.toList()); rawInspectVo.setRawInsProducts(rawInsProductVos); } return rawInspectVo; } //新增原材料检验单 @Override @@ -67,10 +107,10 @@ String testValue = rawInsProduct.getTestValue();//检测值 char req = required.charAt(0); List<Integer> list = Arrays.stream(testValue.split(",")).map(s -> { int values=2; int values = 2; if (req == '>' || req == '<' || req == '=') { values = checkValues(required, internal, s); }else { } else { values = conValues(required, internal, s); } return values; @@ -157,6 +197,7 @@ } return 0; } //如果是> , < ,=的操作 private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) { boolean isStandardValueSatisfied = isValueSatisfied(standardValueStr, detectionValueStr); inspect-server/src/main/resources/mapper/RawInspectMapper.xml
@@ -124,4 +124,14 @@ and rp.state = 1 and r.id = #{id} </select> <!--根据原材料编码查询最近一条数据--> <select id="selOneByCode" resultType="com.yuanchu.mom.pojo.RawInspect"> select * from mom_ocean.raw_inspect where state = 1 and code = #{code} order by id desc limit 1 </select> </mapper> inventory-server/src/main/java/com/yuanchu/mom/Task/SyncOrder.java
@@ -27,6 +27,8 @@ private static final String DOWN_LOAD = "http://192.168.18.16:9999/order/otcService/download/"; private static final String IFS_URL="http://192.168.20.47:8008/PurchService.ashx?contract=ZTKJ&contractKey=4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo=&procedureName=QUERY_POL_RECEIPT_STD&userId=mes_user&inAttr={\"ORDER_NO\":\"-2050314\"}"; private static final Map<String, String> GET_TOKEN_HEADER = new HashMap<>(2); private static final Map<String, Object> USER_INFO = new HashMap<>(4); @@ -88,4 +90,16 @@ .execute().body(); return result; } /** * ifs * @return */ public static List<Map<String, Object>>ifsInterfaces(){ String result = HttpRequest.get(IFS_URL) .header("Authorization", "Bearer " + getToken()) .execute().body(); Map<String, Object>map=JsonUtil.jsonToPojo(result,Map.class); return JsonUtil.jsonToPojo(JsonUtil.jsonToString(map.get("LIST_INFO")),List.class); } } system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java
@@ -1,7 +1,9 @@ package com.yuanchu.mom; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.yuanchu.mom.Task.SyncOrder; import com.yuanchu.mom.pojo.RawInspect; import com.yuanchu.mom.pojo.Sale; import com.yuanchu.mom.pojo.SaleMaterial; import org.junit.jupiter.api.Test; @@ -60,4 +62,26 @@ } System.out.println(list); } @Test void bb() { List<Map<String, Object>> mapList = SyncOrder.ifsInterfaces(); List<RawInspect> rawInspectList = mapList.stream().map(map -> { RawInspect rawInspect = new RawInspect(); if (map.get("PART_NO").toString().equals("A0410008010700")) { rawInspect.setCode(map.get("PART_NO").toString()); //原材料编码 String[] split = map.get("PART_DESC").toString().split(","); rawInspect.setName(split[0]); //原材料名称 rawInspect.setSpecifications(split[1]); //型号规格 rawInspect.setUnit(map.get("BUY_UNIT_MEAS").toString()); //单位 rawInspect.setNumber(Integer.parseInt(String.valueOf(map.get("QTY_TO_INSPECT")))); //数量 rawInspect.setInsState(0); //未检验 rawInspect.setFormTime(DateUtil.parse(map.get("APPROVED_DATE").toString())); //来料日期 rawInspect.setSupplier(map.get("SUPPLIER_NAME").toString()); //供应商 } return rawInspect; }).collect(Collectors.toList()); System.out.println(rawInspectList); } }