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") 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; } 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; 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); } 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; } 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; } 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); } 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); //å¤ææ ·ååå·æ¯å¦æ¯BZ 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; } } 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 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>