inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderPlanDTO.java
@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; import java.io.Serializable; @Data inspect-server/src/main/java/com/yuanchu/mom/dto/InsProductResultDto.java
@@ -11,9 +11,6 @@ @Data public class InsProductResultDto { //订单id private Integer orderId; //样品id private Integer sampleId; inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -312,6 +312,9 @@ if (ObjectUtils.isNotEmpty(sampleId)) { insOrderFile.setInsSampleId(sampleId); } if (ObjectUtils.isNotEmpty(sonLaboratory)) { insOrderFile.setSonLaboratory(sonLaboratory); } insOrderFile.setFileName(filename); if (contentType != null && contentType.startsWith("image/")) { // 是图片 @@ -401,7 +404,7 @@ } else { InsOrderState insOrderState = new InsOrderState(); insOrderState.setInsOrderId(insSample.getInsOrderId()); insOrderState.setInsOrderId(insSample.getId()); insOrderState.setInsSampleId(insSample.getId()); insOrderState.setLaboratory(sonLaboratory); insOrderState.setInsState(0); insOrderState.setNum(1);//初始是第一次 @@ -684,16 +687,15 @@ throw new ErrorException("频率不能为空"); } Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); //查询样品信息 InsSample insSample = insSampleMapper.selectById(insProductResultDtos.getSampleId()); //查询检验单信息 InsOrder insOrder = insOrderMapper.selectById(insProductResultDtos.getOrderId()); InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() .eq(InsOrderState::getInsOrderId, insProductResultDtos.getOrderId()) .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) .eq(InsOrderState::getInsSampleId, insProductResultDtos.getSampleId()) .eq(InsOrderState::getLaboratory, insProductResultDtos.getSonLaboratory()) .orderByDesc(InsOrderState::getId) .last("LIMIT 1"));// 确保只取一条记录 //查询样品信息 InsSample insSample = insSampleMapper.selectById(insProductResultDtos.getSampleId()); List<Integer> list = new ArrayList<>(); /*新增检验项目检验值记录表(采取先删后增)*/ insProductResult2Mapper.delete(Wrappers.<InsProductResult2>lambdaQuery() @@ -799,10 +801,10 @@ insSampleMapper.updateById(insSample); } /*判断该站点的检验项目是否全部已检*/ int count = insProductMapper.selectInsProductCountByOrderId(insProductResultDtos.getOrderId()); int count = insProductMapper.selectInsProductCountByOrderId(insSample.getInsOrderId()); if (count == 0) { insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate() .eq(InsOrderState::getInsOrderId, insProductResultDtos.getOrderId()) .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) .eq(InsOrderState::getInsSampleId, insProductResultDtos.getSampleId()) .eq(InsOrderState::getLaboratory, insProductResultDtos.getSonLaboratory()) .set(InsOrderState::getInsState, 2)); @@ -958,7 +960,7 @@ .set(InsOrderState::getCreateTime, LocalDateTime.now())); break; case 1: //继续试验:该站点任务结束(可以再次扫码检验); //继续试验:该样品该站点任务结束(可以再次扫码检验); insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) .eq(InsOrderState::getInsSampleId, sampleId) @@ -1039,6 +1041,11 @@ List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() .eq(InsProduct::getInsSampleId, insSample.getId()) .eq(InsProduct::getSonLaboratory, submitPlanDto.getLaboratory()) .and(wrapper -> wrapper .isNull(InsProduct::getInsResult) .or() .eq(InsProduct::getInsResult, 2) ) .eq(InsProduct::getState, 1)); if (insProducts.size() > 0) { String str = ""; @@ -1104,7 +1111,7 @@ map.put("safe", 0);//是否保密消息.0否 map.put("enable_id_trans", 0);//是否开启id转译.0否 map.put("enable_duplicate_check", 0);//是否开启重复消息检查.0否 qywxApi.send(map); //qywxApi.send(map); //复核人--检验单相关负责人 InsSampleUser insSampleUser = new InsSampleUser(); insSampleUser.setUserId(submitPlanDto.getVerifyUser()); @@ -1151,27 +1158,26 @@ } for (AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours : submitPlanDto.getAuxiliaryOutputWorkingHoursList()) { InsProduct insProduct = insProductMapper.selectById(auxiliaryOutputWorkingHours.getInsProductId()); if (isWithinRange) { //在时间内就是正常上班 auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//非加班委托单号 auxiliaryOutputWorkingHours.setWorkTime(auxiliaryOutputWorkingHours.getOutputWorkTime());//非加班工时 auxiliaryOutputWorkingHours.setAmount(1);//非加班数量 } else { //加班 auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//加班委托单号 auxiliaryOutputWorkingHours.setOvertimeWorkTime(auxiliaryOutputWorkingHours.getOutputWorkTime());//加班工时 auxiliaryOutputWorkingHours.setOvertimeAmount(1);//加班数量 } auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//工时分组 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//日期 LocalDateTime localDateTime = LocalDateTime.now(); DateTime parse = DateUtil.parse(localDateTime.format(formatter)); auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//星期 auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//周次 auxiliaryOutputWorkingHours.setCheck(userId);//todo 检测人(后面要去掉由前端传入) auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); if (isWithinRange) { //在时间内就是正常上班 auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//非加班委托单号 auxiliaryOutputWorkingHours.setWorkTime(auxiliaryOutputWorkingHours.getOutputWorkTime());//非加班工时 auxiliaryOutputWorkingHours.setAmount(1);//非加班数量 } else { //加班 auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//加班委托单号 auxiliaryOutputWorkingHours.setOvertimeWorkTime(auxiliaryOutputWorkingHours.getOutputWorkTime());//加班工时 auxiliaryOutputWorkingHours.setOvertimeAmount(1);//加班数量 } auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//工时分组 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//日期 LocalDateTime localDateTime = LocalDateTime.now(); DateTime parse = DateUtil.parse(localDateTime.format(formatter)); auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//星期 auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//周次 auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); } } } inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
@@ -461,8 +461,10 @@ .eq(InsProductResult::getInsProductId, insProduct.getId()).isNull(InsProductResult::getNum)); insProduct.setInsProductResult(insProductResult); } BeanUtils.copyProperties(insSample,sampleProductDto); sampleProductDto.setInsProduct(insProducts); SampleProductDto dto = new SampleProductDto(); dto.setInsProduct(insProducts); BeanUtils.copyProperties(insSample,dto); sampleProductDto=dto; } List<Integer> ids = sampleProductDto.getInsProduct().stream().map(InsProduct::getId).collect(Collectors.toList()); List<InsProductUser> insProductUsers = insProductUserMapper.selectList(Wrappers.<InsProductUser>lambdaQuery() inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java
@@ -360,7 +360,9 @@ if (insReportDto.getState() == 1) { List<InsReportDto1> insReportDto1s = insReportDto.getInsReportDto1s(); for (InsReportDto1 insReportDto1 : insReportDto1s) { wordUtils.generateReport(insReportDto.getId(), insReportDto1); if (ObjectUtils.isNotEmpty(insReportDto1.getInsReportDto2s())){ wordUtils.generateReport(insReportDto.getId(), insReportDto1); } } } } else { inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java
@@ -31,6 +31,7 @@ private String checkName; private Integer userId; private String userNameId; @ValueTableShow(value = 8,name = "检验开始时间") private String insTime; inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -30,11 +30,12 @@ SELECT a.*, ios.ins_state, ios.laboratory son_laboratory, ios.verify_tell, verify_user, ios.id orderStateId, ios.create_time, (SELECT ins_time FROM ins_order_state WHERE ins_order_id = a.id AND laboratory = a.son_laboratory and (SELECT ins_time FROM ins_order_state WHERE ins_order_id = a.id AND laboratory = son_laboratory and ins_order_state.ins_sample_id=a.sampleId ORDER BY ins_time DESC LIMIT 1) AS ins_time , iou.submit_time , ios.sort, @@ -55,14 +56,16 @@ isa.sample sample, isa.sample_code sampleCode, userName, userNameId, checkName, ip.son_laboratory, io.laboratory io.laboratory, io.state FROM ins_order io LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id LEFT JOIN ( SELECT ins_sample_id,GROUP_CONCAT( DISTINCT uu.name SEPARATOR ',') AS userName ,GROUP_CONCAT( DISTINCT uu.id SEPARATOR ',') AS userNameId FROM ins_sample_user u LEFT JOIN user uu ON u.user_id = uu.id WHERE son_laboratory=#{sonLaboratory} and u.state=0 @@ -77,18 +80,13 @@ GROUP BY ins_sample_id ORDER BY ins_sample_id )isu2 ON isu2.ins_sample_id = isa.id LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id WHERE io.state = 1 and send_time is not null <if test="userName !=null and userName!=''"> and ( (userName like CONCAT ('%', #{userName},'%') ) or (checkName like CONCAT ('%', #{userName},'%') ) ) </if> and ip.son_laboratory=#{sonLaboratory} GROUP BY ip.son_laboratory, io.id ) a ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory and ios.ins_sample_id=a.sampleId ON ios.ins_order_id = a.id AND ios.laboratory = #{sonLaboratory} and ios.ins_sample_id=a.sampleId LEFT JOIN ins_order_user iou ON ios.id = iou.ins_order_state_id and ios.num=iou.num ORDER BY ios.sort, @@ -98,6 +96,7 @@ ) b where ins_state is not null and son_laboratory=#{sonLaboratory} and state =1 <if test="laboratory!=null and laboratory!=''"> and laboratory=#{laboratory} </if> @@ -110,7 +109,7 @@ <select id="inspectionOrderDetailsTaskSwitching" resultType="com.yuanchu.mom.vo.InsOrderPlanTaskSwitchVo"> select * from( SELECT a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,verify_user a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,verify_user,ios.laboratory son_laboratory FROM ins_order_state ios LEFT JOIN @@ -126,9 +125,9 @@ isa.sample_code sampleCode, isu.user_id, user.name userName, ip.son_laboratory, io.ins_time, io.laboratory io.laboratory, io.state FROM ins_order io LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id @@ -143,7 +142,6 @@ ) ORDER BY ins_sample_id, id ) isu ON isu.ins_sample_id = isa.id LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id LEFT JOIN user ON isu.user_id = user.id WHERE io.state = 1 @@ -152,11 +150,8 @@ and (isu.user_id = #{userId} OR isu.user_id is NULL ) </if> OR isu.user_id is NULL GROUP BY ip.son_laboratory, io.id ) a ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory and a.sampleId=ios.ins_sample_id ON ios.ins_order_id = a.id AND ios.laboratory = #{sonLaboratory} and a.sampleId=ios.ins_sample_id left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM ins_sample_user where son_laboratory=#{sonLaboratory} GROUP BY ins_sample_id) md where td.id = md.id @@ -167,9 +162,7 @@ ) isu2 on isu2.ins_sample_id = a.sampleId where ins_state is not null <if test="laboratory != null and laboratory != ''"> and a.laboratory=#{laboratory} </if> and state=1 ORDER BY a.type DESC, a.id @@ -229,15 +222,6 @@ left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null) s) order by case when man_hour_group is NULL then 1 when man_hour_group = '' then 1 else 0 end, CASE WHEN man_hour_group REGEXP '^[0-9]' THEN CAST(man_hour_group AS UNSIGNED) -- 如果以数字开头,则按照数字大小排序 WHEN man_hour_group REGEXP '[0-9]+' THEN CAST(SUBSTRING(man_hour_group, 2) AS UNSIGNED) END -- 提取字母后面的数字部分 , id asc </select> <select id="getInsOrderAndSample" resultMap="sampleDto"> select isa.*, @@ -424,39 +408,14 @@ ip.create_time ip_create_time, ip.update_time ip_update_time, template_id, ipr.ins_value, ipr.com_value, ipr.equip_value, ipr.before_check, ipr.after_check, ipr2.frequency, ipr2.often, ipr2.port, ipr2.angle, ipr2.value, ipr2.result, ipr2.equip_value equipValue2, ipr2.equip_name equipName2, ip.method_s from ins_sample isa left join ins_order_state ios on isa.id = ios.ins_sample_id left join ins_product ip on isa.id = ip.ins_sample_id left join ins_product_result ipr on ip.id = ipr.ins_product_id left join ins_product_result_2 ipr2 on ip.id = ipr2.ins_product_id where isa.ins_order_id = #{id} and ip.standard_method_list_id is not null and state = 1 and (ipr2.num = ios.num or ipr2.num is null) and (ipr.num = ios.num or ipr.num is null) order by case when man_hour_group is NULL then 1 when man_hour_group = '' then 1 else 0 end, CASE WHEN man_hour_group REGEXP '^[0-9]' THEN CAST(man_hour_group AS UNSIGNED) -- 如果以数字开头,则按照数字大小排序 WHEN man_hour_group REGEXP '[0-9]+' THEN CAST(SUBSTRING(man_hour_group, 2) AS UNSIGNED) END -- 提取字母后面的数字部分 , id asc </select> <select id="selectSampleProductListByOrder2Id2" resultMap="sampleDto"> select isa.*, @@ -498,37 +457,13 @@ ip.create_time ip_create_time, ip.update_time ip_update_time, template_id, ipr.ins_value, ipr.com_value, ipr.equip_value, ipr.before_check, ipr.after_check, ipr2.frequency, ipr2.often, ipr2.port, ipr2.angle, ipr2.value, ipr2.result, ipr2.equip_value equipValue2, ipr2.equip_name equipName2, ip.method_s from ins_sample isa left join ins_order_state ios on isa.id = ios.ins_sample_id left join ins_product ip on isa.id = ip.ins_sample_id left join ins_product_result ipr on ip.id = ipr.ins_product_id left join ins_product_result_2 ipr2 on ip.id = ipr2.ins_product_id where isa.ins_order_id = #{id} and ip.standard_method_list_id is not null and state = 1 order by case when man_hour_group is NULL then 1 when man_hour_group = '' then 1 else 0 end, CASE WHEN man_hour_group REGEXP '^[0-9]' THEN CAST(man_hour_group AS UNSIGNED) -- 如果以数字开头,则按照数字大小排序 WHEN man_hour_group REGEXP '[0-9]+' THEN CAST(SUBSTRING(man_hour_group, 2) AS UNSIGNED) END -- 提取字母后面的数字部分 , id asc </select> <select id="selectSampleProductListByOrderId3" resultMap="sampleDto3"> select isa.id, @@ -558,12 +493,6 @@ <foreach collection="ids" open="(" close=")" item="id" separator=","> #{id} </foreach> order by case when man_hour_group is NULL then 1 when man_hour_group ='' then 1 else 0 end, CASE WHEN man_hour_group REGEXP '^[0-9]' THEN CAST(man_hour_group AS UNSIGNED) -- 如果以数字开头,则按照数字大小排序 WHEN man_hour_group REGEXP '[0-9]+' THEN CAST(SUBSTRING(man_hour_group, 2)AS UNSIGNED) END -- 提取字母后面的数字部分 ,id asc </select> <select id="getInsProduct1" resultMap="product">