From afebb0ff6b79092519377d943462cc084b9cdb28 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期日, 29 九月 2024 17:59:25 +0800 Subject: [PATCH] 检验下单新增附件,时间,电机编号 --- inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java | 8 + inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSample.java | 8 ++ inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java | 2 inspect-server/src/main/resources/mapper/InsOrderMapper.xml | 1 inspect-server/src/main/resources/mapper/InsSampleMapper.xml | 12 +++ inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrder.java | 13 ++ inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java | 25 ++++- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java | 115 +++++++++++++++++++++++----- inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderDto.java | 15 +++ inspect-server/src/main/java/com/yuanchu/mom/dto/SampleOrderDto.java | 4 + 10 files changed, 173 insertions(+), 30 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java index cf6dc1a..7eecc14 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java @@ -5,13 +5,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.annotation.ValueAuth; import com.yuanchu.mom.annotation.ValueClassify; -import com.yuanchu.mom.dto.CostStatisticsDto; -import com.yuanchu.mom.dto.SampleOrderDto; -import com.yuanchu.mom.dto.SampleProductDto; -import com.yuanchu.mom.dto.SampleProductDto2; +import com.yuanchu.mom.dto.*; import com.yuanchu.mom.pojo.InsOrder; import com.yuanchu.mom.pojo.InsOrderTemplate; import com.yuanchu.mom.pojo.InsProduct; +import com.yuanchu.mom.pojo.InsSample; import com.yuanchu.mom.service.InsOrderService; import com.yuanchu.mom.service.InsOrderTemplateService; import com.yuanchu.mom.service.InsProductService; @@ -23,6 +21,7 @@ import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.time.LocalDateTime; @@ -72,13 +71,13 @@ @ValueClassify("妫�楠屼笅鍗�") @ApiOperation(value = "娣诲姞妫�楠屼笅鍗曟暟鎹�") @PostMapping("/addInsOrder") - public Result<?> addInsOrder(String str) { + public Result<?> addInsOrder(@RequestParam String str, @RequestParam List<MultipartFile> files) { Map<String, Object> map = JSON.parseObject(str, Map.class); JSONArray jsonArray = JSON.parseArray(map.get("list")+""); List<SampleProductDto> list = jsonArray.toJavaList(SampleProductDto.class); InsOrder insOrder = JSON.parseObject(JSON.toJSONString(map.get("insOrder")), InsOrder.class); List<List<Integer>> pairing = JSON.parseArray(map.get("pairing")+""); - return Result.success(insOrderService.addInsOrder(list, insOrder, pairing)); + return Result.success(insOrderService.addInsOrder(list, insOrder, pairing,files)); } @ApiOperation(value = "鏌ヨ璁㈠崟鏈�闀块璁℃椂闂�") @@ -218,6 +217,20 @@ return Result.success(insOrderService.labelPrinting(ids)); } + @ValueAuth + @ApiOperation(value = "鏍¢獙鐢垫満缂栧彿") + @PostMapping("/checkNumber") + public Result<?> checkNumber(String ids) { + return Result.success(insOrderService.checkNumber(ids)); + } + + @ValueAuth + @ApiOperation(value = "濉啓鐢垫満缂栧彿") + @PostMapping("/addNumber") + public Result<?> addNumber(@RequestBody List<InsSample> insSamples) { + return Result.success(insOrderService.addNumber(insSamples)); + } + @ValueClassify("璐圭敤缁熻") @ApiOperation(value = "璐圭敤缁熻瀵煎嚭") @PostMapping("/export") diff --git a/inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderDto.java b/inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderDto.java new file mode 100644 index 0000000..0e566ec --- /dev/null +++ b/inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderDto.java @@ -0,0 +1,15 @@ +package com.yuanchu.mom.dto; + +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +//鏂板鐨勫弬鏁� +@Data +public class InsOrderDto { + + private String str; + + private MultipartFile[] files; +} diff --git a/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleOrderDto.java b/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleOrderDto.java index 84338ac..b319654 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleOrderDto.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleOrderDto.java @@ -35,6 +35,10 @@ @ApiModelProperty("鏍峰搧缂栧彿") private String sampleCode; + @ValueTableShow(3) + @ApiModelProperty("鏍锋満缂栧彿") + private String motorNumber; + @ValueTableShow(7) @ApiModelProperty("妫�楠岃繘搴�%") private String insProgress; diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java index ac01ee9..92ebf41 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java @@ -55,6 +55,8 @@ //杩囨护鎺夋病鏈夋楠岄」鐩殑鏍峰搧 List<InsSample> selectSampleListByOrderId(Integer orderId); + + List<InsSample> selectInsSample(List<Integer> list); } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrder.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrder.java index db2f535..378450c 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrder.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrder.java @@ -37,7 +37,7 @@ /** * 澶栭儴濮旀墭缂栧彿 */ - @ValueTableShow(1) + @ValueTableShow(2) @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255") @ApiModelProperty(value = "澶栭儴濮旀墭缂栧彿") @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255") @@ -60,7 +60,6 @@ /** * 涓嬪崟鍗曚綅 */ - @ValueTableShow(2) @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255") @ApiModelProperty("濮旀墭鍗曚綅") @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255") @@ -127,7 +126,6 @@ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255") private String otcCode; -// @ValueTableShow(11) @ApiModelProperty("涓嬪崟浜�") @TableField(fill = FieldFill.INSERT) private Integer createUser; @@ -252,5 +250,14 @@ @ApiModelProperty("闆朵欢鍙�(鍏朵粬鎴愬搧杩欎釜瀛楁闇�瑕佸~鍐欑殑淇℃伅)") private String partNo; + /** + * 鏍锋満瀹屾垚鏃堕棿 + */ + @ValueTableShow(13) + @ApiModelProperty("鏍锋満瀹屾垚鏃堕棿") + @TableField(fill = FieldFill.INSERT) + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate issueTime; + } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSample.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSample.java index 65d94be..e42ef18 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSample.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSample.java @@ -117,4 +117,12 @@ @ApiModelProperty("璇曢獙瑕佹眰:绉诲姩,鑱旈��,鐢典俊") private String testRequirements; + /** + * 鏍锋満缂栧彿 + */ + private String motorNumber; + + @TableField(exist = false,select = false) + private String entrustCode; + } \ No newline at end of file diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java index 4e6a342..a15d44f 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.yuanchu.mom.dto.*; import com.yuanchu.mom.pojo.InsOrder; +import com.yuanchu.mom.pojo.InsSample; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.ServletException; import javax.servlet.http.HttpServletResponse; @@ -25,7 +27,7 @@ //鍒嗛厤绔欑偣 int upInsOrder(Integer orderId,Integer sampleId, String appointed, Integer userId,String sonLaboratory); - int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing); + int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing, List<MultipartFile> files); Map<String, Object> getInsOrder(Integer id); @@ -47,5 +49,9 @@ List<SampleProductDto3> labelPrinting(String ids); + Map<String, List<InsSample>> checkNumber(String ids); + void export(CostStatisticsDto costStatisticsDto,HttpServletResponse response)throws IOException, ServletException; + + int addNumber(List<InsSample> insSamples); } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java index efcae29..e1d1bc2 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java @@ -1,5 +1,6 @@ package com.yuanchu.mom.service.impl; +import cn.hutool.core.lang.UUID; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.excel.EasyExcel; @@ -20,6 +21,7 @@ import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.*; import com.yuanchu.mom.pojo.*; +import com.yuanchu.mom.service.InsOrderPlanService; import com.yuanchu.mom.service.InsOrderService; import com.yuanchu.mom.service.InsProductService; import com.yuanchu.mom.utils.GiveCode; @@ -29,10 +31,14 @@ import lombok.AllArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.IOException; import java.net.URLEncoder; import java.time.LocalDate; @@ -48,37 +54,46 @@ * @createDate 2024-03-12 16:17:55 */ @Service -@AllArgsConstructor @Transactional(rollbackFor = Exception.class) -public class InsOrderServiceImpl extends ServiceImpl<InsOrderMapper, InsOrder> - implements InsOrderService { +public class InsOrderServiceImpl extends ServiceImpl<InsOrderMapper, InsOrder> implements InsOrderService { + @Resource private GetLook getLook; - + @Resource private RoleMapper roleMapper; - + @Resource private InsOrderMapper insOrderMapper; + @Value("${file.path}") + private String imgUrl; + + @Value("${wordUrl}") + private String wordUrl; + @Resource + private InsOrderFileMapper insOrderFileMapper; + @Resource private InsSampleMapper insSampleMapper; + @Resource private WarehouseHistoryMapper warehouseHistoryMapper; - + @Resource private InsProductMapper insProductMapper; + @Resource private InsProductService insProductService; - + @Resource private InsProductUserMapper insProductUserMapper; - + @Resource private GiveCode giveCode; - + @Resource private InsSampleUserMapper insSampleUserMapper; - + @Resource private InsOrderStateMapper insOrderStateMapper; - + @Resource UserMapper userMapper; - + @Resource PowerMapper powerMapper; - + @Resource CustomMapper customMapper; - + @Resource QYWXApi qywxApi; @@ -148,7 +163,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing) { + public int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing, List<MultipartFile> files) { insOrder.setState(0); //鍒ゆ柇閫夋嫨鐨勫鎵樺崟浣嶄笌鍒跺崟浜虹殑濮旀墭鍗曚綅鏄惁涓�鑷� Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); @@ -181,7 +196,7 @@ a.setInsOrderId(insOrder.getId()); //鏍峰搧缂栧彿 if (StrUtil.isEmpty(a.getSampleCode())) { - a.setSampleCode("YP-" + a.getModel()+"-" + giveCode.split("-")[2] + "-" + count.get()); + a.setSampleCode("YP-" + a.getModel() + "-" + giveCode.split("-")[2] + "-" + count.get()); } insSampleMapper.insert(a); //鏍峰搧鐨勬楠岄」鐩� @@ -229,6 +244,42 @@ if (insOrder.getOrderType().equals("C")) { insOrder.setState(1); upInsOrderOfState(insOrder); + } + //濡傛灉鏈変笂浼犵殑闄勪欢 + if (CollectionUtils.isNotEmpty(files)) { + for (MultipartFile file : files ) { + String urlString; + String pathName; + String path; + String filename = file.getOriginalFilename(); + String contentType = file.getContentType(); + InsOrderFile insOrderFile = new InsOrderFile(); + insOrderFile.setInsOrderId(insOrder.getId()); + insOrderFile.setFileName(filename); + if (contentType != null && contentType.startsWith("image/")) { + // 鏄浘鐗� + path = imgUrl; + insOrderFile.setType(1); + } else { + // 鏄枃浠� + path = wordUrl; + insOrderFile.setType(2); + } + try { + File realpath = new File(path); + if (!realpath.exists()) { + realpath.mkdirs(); + } + pathName = UUID.randomUUID() + "_" + file.getOriginalFilename(); + urlString = realpath + "/" + pathName; + file.transferTo(new File(urlString)); + insOrderFile.setFileUrl(pathName); + insOrderFileMapper.insert(insOrderFile); + } catch (Exception e) { + e.printStackTrace(); + System.err.println("闄勪欢涓婁紶閿欒"); + } + } } return insOrder.getId(); } @@ -453,11 +504,7 @@ List<Integer> list = Arrays.stream(ids.split(",")).map(Integer::parseInt).collect(Collectors.toList()); List<SampleProductDto3> sampleProductDtos = insSampleMapper.selectSampleProductListByOrderId3(list); Set<String> processedCodes = new HashSet<>(); - //濡傛灉鏄厜绾ゆ垨鑰呮槸鍏夌氦甯﹂粯璁ゅ彧鎵撳嵃绗竴涓� List<SampleProductDto3> sampleProductDto3s = sampleProductDtos.stream().filter(sampleProductDto3 -> { - if (!"鍏夌氦".equals(sampleProductDto3.getIoSampleType()) && !"鍏夌氦甯�".equals(sampleProductDto3.getIoSampleType())) { - return true; - } if (processedCodes.contains(sampleProductDto3.getCode())) { return false; } else { @@ -466,6 +513,26 @@ } }).collect(Collectors.toList()); return sampleProductDto3s; + } + + //鏍¢獙鐢垫満缂栧彿 + @Override + public Map<String, List<InsSample>> checkNumber(String ids) { + List<InsSample> samples = new ArrayList<>(); + List<Integer> list = Arrays.stream(ids.split(",")).map(Integer::parseInt).collect(Collectors.toList()); + List<InsSample> sampleDtos = insSampleMapper.selectInsSample(list); + //鍒ゆ柇鏍峰搧鍨嬪彿鏄惁鏄疊Z + for (InsSample sampleDto : sampleDtos) { + if (sampleDto.getModel().contains("BZ")) { + if (ObjectUtils.isEmpty(sampleDto.getMotorNumber())) { + samples.add(sampleDto); + } + } + } + if (CollectionUtils.isNotEmpty(samples)) { + Map<String, List<InsSample>> collect = samples.stream().collect(Collectors.groupingBy(InsSample::getEntrustCode)); + return collect; + } else return null; } @Override @@ -518,6 +585,14 @@ throw new RuntimeException("瀵煎嚭澶辫触"); } } + + @Override + public int addNumber(List<InsSample> insSamples) { + for (InsSample insSample : insSamples) { + insSampleMapper.updateById(insSample); + } + return 0; + } } diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml index f466f31..b748420 100644 --- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml @@ -72,6 +72,7 @@ CONCAT(ROUND(approved_product_counts.approved_count / total_product_counts.total_count * 100, 2), '%') AS insProgress, GROUP_CONCAT(DISTINCT isa.sample_code SEPARATOR '锛�') AS sample_code, + GROUP_CONCAT(DISTINCT isa.motor_number SEPARATOR '锛�') AS motor_number, GROUP_CONCAT(DISTINCT isa.sample SEPARATOR ' ') AS sample_name, GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model, u.name diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml index 780e279..b03de3c 100644 --- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml @@ -505,6 +505,7 @@ <select id="selectSampleProductListByOrderId3" resultMap="sampleDto3"> select isa.id, sample_code, + motor_number, isa.sample, entrust_code, is_leave, @@ -740,6 +741,7 @@ <result property="joinModel" column="join_model" jdbcType="VARCHAR"/> <result property="joinName" column="join_name" jdbcType="VARCHAR"/> <result property="sampleCode" column="sample_code" jdbcType="VARCHAR"/> + <result property="motorNumber" column="motor_number" jdbcType="VARCHAR"/> <result property="testRequirements" column="test_requirements" jdbcType="VARCHAR"/> <result property="factory" column="factory" jdbcType="VARCHAR"/> <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/> @@ -816,6 +818,7 @@ <result property="code" column="entrust_code" jdbcType="VARCHAR"/> <result property="isLeave" column="is_leave" jdbcType="VARCHAR"/> <result property="sampleCode" column="sample_code" jdbcType="VARCHAR"/> + <result property="motorNumber" column="motor_number" jdbcType="VARCHAR"/> <result property="factory" column="factory" jdbcType="VARCHAR"/> <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/> <result property="sampleType" column="sample_type" jdbcType="VARCHAR"/> @@ -901,4 +904,13 @@ where ins_order_id = #{orderId} and ip.id is not null </select> + <select id="selectInsSample" resultType="com.yuanchu.mom.pojo.InsSample"> + select isa.*,entrust_code + from ins_sample isa + left join ins_order io on isa.ins_order_id = io.id + where ins_order_id in + <foreach collection="ids" open="(" close=")" item="id" separator=","> + #{id} + </foreach> + </select> </mapper> -- Gitblit v1.9.3