From bcc80a6833abe9f24abdb978f7c7f01b664a574f Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 18 二月 2025 14:48:45 +0800
Subject: [PATCH] 优化调整
---
cnas-server/src/main/resources/mapper/DeviceMapper.xml | 19 +++
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java | 29 +++--
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java | 3
inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java | 6
inspect-server/src/main/java/com/yuanchu/mom/pojo/WarehouseShelf.java | 10 +
inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java | 12 +
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 132 +++++++++++++++++++++----
inspect-server/src/main/resources/mapper/WarehouseMapper.xml | 39 ++++++-
inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java | 9 +
inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java | 3
10 files changed, 203 insertions(+), 59 deletions(-)
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java
index 2295cbf..e140fc0 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java
@@ -43,4 +43,7 @@
@ValueTableShow(value = 16, name = "涓嬫鏍″噯鏃ユ湡")
@ApiModelProperty(value = "涓嬫鏍″噯鏃ユ湡")
private LocalDateTime nextCalibrationDateTwo;
+
+ @ApiModelProperty(value = "鏍″噯鎻愰啋")
+ private String status;
}
diff --git a/cnas-server/src/main/resources/mapper/DeviceMapper.xml b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
index 6d1de4a..4a8ddca 100644
--- a/cnas-server/src/main/resources/mapper/DeviceMapper.xml
+++ b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
@@ -102,12 +102,25 @@
SEPARATOR ';'
) AS insProductItem,
u.name ,
- l.laboratory_name
+ l.laboratory_name,
+ cmr.next_calibration_date nextCalibrationDateTwo,
+ CASE
+ WHEN cmr.next_calibration_date IS NULL THEN 0
+ WHEN cmr.next_calibration_date BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 45 DAY) THEN 1
+ ELSE 0
+ END AS status
FROM
device d
LEFT JOIN `user` u ON u.id = d.equipment_manager
LEFT JOIN laboratory l ON l.id = d.subordinate_departments_id
- LEFT JOIN device_metric_record cmr ON d.id = cmr.device_id
+ LEFT JOIN (SELECT
+ device_id,
+ type,
+ MAX(next_calibration_date) AS next_calibration_date
+ FROM
+ device_metric_record
+ GROUP BY
+ device_id )cmr ON d.id = cmr.device_id
LEFT JOIN structure_item_parameter sip ON FIND_IN_SET(sip.id, d.ins_product_ids)
<where>
<if test="laboratoryNameIsNull != null and laboratoryNameIsNull == true">
@@ -117,7 +130,7 @@
</where>
GROUP BY
d.id,
- u.name, l.laboratory_name
+ u.name, l.laboratory_name,cmr.next_calibration_date,status
) a
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java
index 339e4e6..d171ba1 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java
@@ -109,6 +109,13 @@
return Result.success(insOrderPlanService.verifyPlan(sampleId, laboratory, type, tell));
}
+ @ValueClassify("妫�楠屼换鍔�")
+ @ApiOperation(value = "绾犳澶嶆牳")
+ @PostMapping("/verifyPlan2")
+ public Result<?> verifyPlan2(Integer sampleId, String laboratory, Integer type, String tell) throws IOException {
+ return Result.success(insOrderPlanService.verifyPlan2(sampleId, laboratory, type, tell));
+ }
+
@ValueAuth
@ApiOperation(value = "鏍¢獙妫�楠屼换鍔℃彁浜�")
@PostMapping("/checkSubmitPlan")
@@ -245,7 +252,6 @@
@ValueAuth
@PostMapping("/getInsProduct2")
@ApiOperation("鏌ョ湅妫�楠屽巻鍙�")
- //杩欓噷鐨刬d鏄牱鍝乮d
public Result<?> getInsProduct2(Integer id, Integer type, String laboratory, HttpServletRequest request, Integer num) {
return Result.success(insOrderPlanService.getInsProduct2(id, type, laboratory, request, num));
}
@@ -274,7 +280,6 @@
@ValueAuth
@PostMapping("/getCheckUser")
@ApiOperation("鑾峰彇褰撳墠妫�楠屼换鍔$殑鎵�鏈夋楠屽憳淇℃伅")
- //杩欓噷鐨勪紶鍙傛槸鏍峰搧id,绛夋楠屼换鍔¢偅鍧楀叏鏀逛簡涔嬪悗杩欓噷灏辨病闂
public Result<?> getCheckUser(Integer id,String sonLaboratory) {
List<InsSampleUser> insSampleUsers = insSampleUserMapper.selectList(Wrappers.<InsSampleUser>lambdaQuery()
.eq(InsSampleUser::getState, 0) //妫�楠屼汉
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java
index 3a2a4b2..1265f2f 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java
@@ -29,10 +29,12 @@
@ValueClassify("鏍峰搧绠$悊")
@GetMapping("/selectWarehouse")
- @ApiOperation("鏌ヨ浠撳簱")
+ @ApiOperation("鏌ヨ浠撳簱---浠呮煡璇负绌鸿揣鏋�")
public Result selectWarehouse() {
return Result.success(warehouseService.selectWarehouse());
}
+
+
@ValueClassify("鏍峰搧绠$悊")
@PostMapping("/addShelf")
@ApiOperation("娣诲姞璐ф灦")
@@ -95,4 +97,4 @@
public Result getSampleRecord(Integer id) {
return Result.success(warehouseService.getSampleRecord(id));
}
-}
\ No newline at end of file
+}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/WarehouseShelf.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/WarehouseShelf.java
index 15f5597..3f142cd 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/WarehouseShelf.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/WarehouseShelf.java
@@ -6,6 +6,7 @@
import java.io.Serializable;
import java.time.LocalDateTime;
+import java.util.List;
/**
* 璐ф灦
@@ -15,7 +16,7 @@
@Data
public class WarehouseShelf implements Serializable {
/**
- *
+ *
*/
@TableId(type = IdType.AUTO)
private Integer id;
@@ -38,7 +39,7 @@
private Integer col;
/**
- *
+ *
*/
@TableField(fill = FieldFill.INSERT)
private Integer createUser;
@@ -58,4 +59,7 @@
* 澶栭敭锛氫粨搴搃d
*/
private Integer warehouseId;
-}
\ No newline at end of file
+
+ @TableField(select = false,exist = false)
+ List<WarehouseCell> warehouseCellList;
+}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java
index e76c725..20e5f5e 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java
@@ -39,6 +39,9 @@
int verifyPlan(Integer sampleId, String laboratory, Integer type, String tell) throws IOException;
+ //绾犳澶嶆牳閿欒鐨勬儏鍐�
+ int verifyPlan2(Integer sampleId, String laboratory, Integer type, String tell) throws IOException;
+
int submitPlan(SubmitPlanDto submitPlanDto);
//鎾ら攢鎻愪氦
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
index 3a32619..bac2940 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -354,7 +354,7 @@
dianLuUtils.readDianLuFile1(sampleId, insOrderFile);
} else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("鐢佃矾璇曢獙") && split[split.length - 1].equals("csv") && filename.contains("椹绘尝")) {
dianLuUtils.readDianLuFile2(sampleId, insOrderFile);
- }else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("鐢佃矾璇曢獙") && split[split.length - 1].equals("csv") && insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) {
+ } else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("鐢佃矾璇曢獙") && split[split.length - 1].equals("csv") && insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) {
dianLuUtils.readDianLuFile3(sampleId, insOrderFile);
}
} catch (Exception e) {
@@ -891,7 +891,7 @@
for (InsProductResultDto insProductResultDto : insProductResultDtos.getInsProductResultDtos()) {
saveInsContext2(insProductResultDto);
}
- return 1;
+ return 1;
}
//娓╂箍搴﹁瘯楠�+鍔熺巼璇曢獙鐨勪繚瀛樻楠屽唴瀹�
@@ -1061,16 +1061,9 @@
.set(InsOrderState::getVerifyTell, tell)
.set(InsOrderState::getVerifyUser, userId));
//濡傛灉璁㈠崟绫诲瀷鏄師鐞嗘牱鏈�,鍒欒璁㈠崟鐩存帴闂幆
- if (insOrder.getFormType().equals("鍘熺悊鏍锋満")) {
- //鍑哄簱
- try {
- List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSample.getInsOrderId()));
- for (InsSample sample : insSamples) {
- outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode());
- }
- } catch (Exception e) {
-
- }
+ List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSample.getInsOrderId()));
+ for (InsSample sample : insSamples) {
+ outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode());
}
insOrder.setState(4);
insOrderMapper.updateById(insOrder);
@@ -1080,7 +1073,98 @@
return 1;
}
- private void getTemplateThing(Set<Integer> set, Map<Integer, String> map2, List<InsProduct> insProducts) {
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int verifyPlan2(Integer sampleId, String laboratory, Integer type, String tell) throws IOException {
+ Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
+ InsSample insSample = insSampleMapper.selectById(sampleId);
+ InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
+ /*type=0 鍐嶆璇曢獙; type=1 缁х画璇曢獙 ; type=2 缁撴潫璇曢獙*/
+ // 鏌ヨ鏍规嵁 id 鍊掑簭鎺掑垪鐨勭涓�鏉¤褰�
+ InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, sampleId)
+ .eq(InsOrderState::getLaboratory, laboratory)
+ .orderByDesc(InsOrderState::getId)
+ .last("LIMIT 1")); // 纭繚鍙彇涓�鏉¤褰�
+ if (record != null) {
+ //鏇存柊璁板綍
+ insOrderUserMapper.update(null, Wrappers.<InsOrderUser>lambdaUpdate()
+ .eq(InsOrderUser::getInsOrderStateId, record.getId())
+ .eq(InsOrderUser::getNum, record.getNum())
+ .set(InsOrderUser::getTell, tell));
+ switch (type) {
+ case 0:
+ //鍐嶆璇曢獙:璇ュ崟瀛愰��鍥炲埌妫�楠岀姸鎬�(鎺掑簭鏀规垚褰撳墠鐨勬渶鍚�),娆℃暟閫掑(淇濈暀浠ュ墠鐨勬暟鎹�)锛�
+ insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
+ .eq(InsOrderState::getId, record.getId())
+ .set(InsOrderState::getInsTime, LocalDateTime.now())
+ .set(InsOrderState::getInsState, 4)
+ .set(InsOrderState::getVerifyTell, tell)
+ .set(InsOrderState::getVerifyUser, userId)
+ .set(InsOrderState::getNum, record.getNum() + 1)//娆℃暟鍔�1
+ .set(InsOrderState::getCreateTime, LocalDateTime.now()));
+ insOrder.setState(3);
+ break;
+ case 1:
+ //缁х画璇曢獙:璇ユ牱鍝佽绔欑偣浠诲姟缁撴潫(鍙互鍐嶆鎵爜妫�楠�)锛�
+ //鍏堝垽鏂笂涓�涓鏍告槸浠�涔堢粨璁�
+ if (record.getInsState()==4){
+ insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, sampleId)
+ .eq(InsOrderState::getLaboratory, laboratory)
+ .set(InsOrderState::getInsState, 6)
+ .set(InsOrderState::getVerifyTell, tell)
+ .set(InsOrderState::getNum, record.getNum() - 1)//娆℃暟-1
+ .set(InsOrderState::getVerifyUser, userId));
+ }else {
+ insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, sampleId)
+ .eq(InsOrderState::getLaboratory, laboratory)
+ .set(InsOrderState::getInsState, 6)
+ .set(InsOrderState::getVerifyTell, tell)
+ .set(InsOrderState::getVerifyUser, userId));
+ }
+ insOrder.setState(3);
+ break;
+ case 2:
+ //缁撴潫璇曢獙:姝ゅ鎵樺崟鍋滄璇曢獙(鏃犳硶鍐嶆妫�楠�)銆�
+ //鍏堝垽鏂笂涓�涓鏍告槸浠�涔堢粨璁�
+ if (record.getInsState()==4){
+ insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, sampleId)
+ .eq(InsOrderState::getLaboratory, laboratory)
+ .set(InsOrderState::getInsState, 5)
+ .set(InsOrderState::getNum, record.getNum() - 1)//娆℃暟-1
+ .set(InsOrderState::getVerifyTell, tell)
+ .set(InsOrderState::getVerifyUser, userId));
+ }else {
+ insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, sampleId)
+ .eq(InsOrderState::getLaboratory, laboratory)
+ .set(InsOrderState::getInsState, 5)
+ .set(InsOrderState::getVerifyTell, tell)
+ .set(InsOrderState::getVerifyUser, userId));
+ }
+ //鍑哄簱
+ List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSample.getInsOrderId()));
+ for (InsSample sample : insSamples) {
+ outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode());
+ }
+ insOrder.setState(4);
+ break;
+ }
+ insOrderMapper.updateById(insOrder);
+ }
+ return 1;
+ }
+
+ private void getTemplateThing
+ (Set<Integer> set, Map<Integer, String> map2, List<InsProduct> insProducts) {
for (InsProduct product : insProducts) {
if (product.getTemplateId() == null) {
product.setTemplate(new ArrayList<>());
@@ -1194,7 +1278,7 @@
if (submitPlanDto.getLaboratory().equals("鐢佃矾璇曢獙")) {
if (!insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) {
wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
- }else {
+ } else {
wordUtils.generateWord2(submitPlanDto.getTerm(), orderState);
}
//todo 鐢佃矾绔欑偣鎶ュ憡 姝e紡搴撻儴缃叉斁寮�
@@ -1283,8 +1367,8 @@
InsSample insSample = insSampleMapper.selectById(orderState.getInsSampleId());
/*鍒犻櫎璁板綍妫�楠屼换鍔℃瘡娆$殑澶囨敞淇℃伅*/
insOrderUserMapper.delete(Wrappers.<InsOrderUser>lambdaQuery()
- .eq(InsOrderUser::getInsOrderStateId,orderState.getId())
- .eq(InsOrderUser::getNum,orderState.getNum()));
+ .eq(InsOrderUser::getInsOrderStateId, orderState.getId())
+ .eq(InsOrderUser::getNum, orderState.getNum()));
//鎾ら攢鎻愪氦
insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
.eq(InsOrderState::getInsOrderId, orderState.getInsOrderId())
@@ -1305,15 +1389,15 @@
informationNotificationService.addInformationNotification(info);
//鍒犻櫎澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜�
insSampleUserMapper.delete(Wrappers.<InsSampleUser>lambdaQuery()
- .eq(InsSampleUser::getState,1)
- .eq(InsSampleUser::getSonLaboratory,orderState.getLaboratory())
- .eq(InsSampleUser::getUserId,orderState.getVerifyUser())
- .eq(InsSampleUser::getInsSampleId,orderState.getInsSampleId()));
+ .eq(InsSampleUser::getState, 1)
+ .eq(InsSampleUser::getSonLaboratory, orderState.getLaboratory())
+ .eq(InsSampleUser::getUserId, orderState.getVerifyUser())
+ .eq(InsSampleUser::getInsSampleId, orderState.getInsSampleId()));
//鍒犻櫎鐢熸垚鐨勬姤鍛�
if (orderState.getLaboratory().equals("鐢佃矾璇曢獙")) {
List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery()
.eq(InsOrderFile::getType, 2)
- .like(InsOrderFile::getFileName,"鐢佃矾鍙傛暟.docx")
+ .like(InsOrderFile::getFileName, "鐢佃矾鍙傛暟.docx")
.eq(InsOrderFile::getInsOrderId, insOrder.getId())
.eq(InsOrderFile::getInsSampleId, orderState.getInsSampleId())
.eq(InsOrderFile::getSonLaboratory, orderState.getLaboratory()));
@@ -1328,9 +1412,9 @@
List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, insSample.getId()));
List<Integer> productIds = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList());
auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
- .eq(AuxiliaryOutputWorkingHours::getSample,insSample.getSampleCode())
- .in(AuxiliaryOutputWorkingHours::getInsProductId,productIds)
- .eq(AuxiliaryOutputWorkingHours::getNum,orderState.getNum()));
+ .eq(AuxiliaryOutputWorkingHours::getSample, insSample.getSampleCode())
+ .in(AuxiliaryOutputWorkingHours::getInsProductId, productIds)
+ .eq(AuxiliaryOutputWorkingHours::getNum, orderState.getNum()));
// todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss
HashMap<String, Object> map = new HashMap<>();
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java
index d4123f0..f4c5291 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java
@@ -11,9 +11,11 @@
import com.yuanchu.mom.mapper.InsOrderMapper;
import com.yuanchu.mom.mapper.InsProductMapper;
import com.yuanchu.mom.mapper.InsSampleMapper;
+import com.yuanchu.mom.mapper.WarehouseHistoryMapper;
import com.yuanchu.mom.pojo.InsOrder;
import com.yuanchu.mom.pojo.InsProduct;
import com.yuanchu.mom.pojo.InsSample;
+import com.yuanchu.mom.pojo.WarehouseHistory;
import com.yuanchu.mom.service.InsProductService;
import com.yuanchu.mom.utils.QueryWrappers;
import com.yuanchu.mom.vo.InsOrderPlanVO;
@@ -33,6 +35,8 @@
private InsOrderMapper insOrderMapper;
private InsSampleMapper insSampleMapper;
+
+ private WarehouseHistoryMapper warehouseHistoryMapper;
@Override
public int selectOrderManDay(Integer orderId) {
@@ -83,6 +87,7 @@
@Override
public void checkUpdate(Integer orderId, Integer state) {
InsOrder insOrder = insOrderMapper.selectById(orderId);
+ //閫氳繃
if (state == 1) {
List<String> list = new ArrayList<>();
try {
@@ -99,29 +104,29 @@
if (insProducts.stream().map(InsProduct::getId).collect(Collectors.toList()).equals(ids)) {
//濡傛灉璇ユ楠屽崟涓嬬殑鎵�鏈夐」鐩叏閮ㄩ兘鎾ら攢,閭d箞杩欎釜鍗曞瓙涔熼渶瑕佹挙閿�
insOrder.setState(3);
- }
- else {
+ //鍑哄叆搴撹褰曞叏閮ㄥ垹鎺�
+ warehouseHistoryMapper.delete(Wrappers.<WarehouseHistory>lambdaQuery().in(WarehouseHistory::getInsSampleId, collect));
+ //鍏ㄩ儴鎾ら攢,鏍峰搧鍜岄」鐩笉鑳藉垹鎺�,涓嶇劧妫�楠屼笅鍗曠殑鎾ら攢娌℃湁鏁版嵁
+ } else {
List<InsProduct> products = insProductMapper.selectBatchIds(ids);
- //棣栧厛鏍规嵁閫夋嫨鐨勯」鐩甶d杩涜鎾ら攢椤圭洰
- updateBatchById(products.stream().map(insProduct -> {
- insProduct.setState(0);
- return insProduct;
- }).collect(Collectors.toList()));
- //濡傛灉璇ユ楠屽崟鏌愪釜鏍峰搧涓嬬殑椤圭洰鍏ㄩ儴閮芥挙閿�浜�,閭d箞杩欎釜鏍峰搧涔熼渶瑕佸垹鎺�
+ //濡傛灉璇ユ楠屽崟鏌愪釜鏍峰搧涓嬬殑椤圭洰鍏ㄩ儴閮芥挙閿�浜�,閭d箞杩欎釜鏍峰搧鐨勫嚭鍏ュ簱璁板綍涔熼渶瑕佸垹鎺�
List<Integer> sampleIds = products.stream().map(InsProduct::getInsSampleId).distinct().collect(Collectors.toList());
+ //椤圭洰鍒犳帀
+ insProductMapper.deleteBatchIds(ids);
for (Integer sampleId : sampleIds) {
Long count = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
.eq(InsProduct::getInsSampleId, sampleId)
.eq(InsProduct::getState, 1));
- if(count<=0){
+ if (count <= 0) {
+ //鍑哄叆搴撹褰曞叏閮ㄥ垹鎺�
+ warehouseHistoryMapper.delete(Wrappers.<WarehouseHistory>lambdaQuery().eq(WarehouseHistory::getInsSampleId, sampleId));
+ //瀵瑰簲鐨勬牱鍝佸垹鎺�
insSampleMapper.deleteById(sampleId);
}
}
}
- //insProductMapper.updateInspected(id);
}
- //涓嶉�氳繃
- insOrder.setIsRevocation(0);
+ insOrder.setIsRevocation(state);
insOrderMapper.updateById(insOrder);
}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java
index 8d2ab9d..4c41723 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java
@@ -151,9 +151,11 @@
if(tree.length < 4){
throw new ErrorException("搴撲綅閫夋嫨閿欒");
}
- List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getEntrustCode, entrustCode));
+ List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery()
+ .ne(InsOrder::getState,3)//鎺掗櫎鎾ら攢鐨勮鍗�
+ .eq(InsOrder::getEntrustCode, entrustCode));
if(insOrders.size()!=1){
- throw new ErrorException("璁㈠崟缂栧彿杈撳叆鏈夎");
+ throw new ErrorException("璁㈠崟缂栧彿杈撳叆鏈夎,鎴栬�呰璁㈠崟缂栧彿宸茬粡鎾ら攢");
}
List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
.eq(InsSample::getSampleCode, sampleCode)
@@ -180,9 +182,11 @@
@Override
public int outWarehouse(String sampleCode, boolean a,String entrustCode) {
- List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getEntrustCode, entrustCode));
+ List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery()
+ .ne(InsOrder::getState,3)//鎺掗櫎鎾ら攢鐨勮鍗�
+ .eq(InsOrder::getEntrustCode, entrustCode));
if(insOrders.size()!=1){
- throw new ErrorException("璁㈠崟缂栧彿杈撳叆鏈夎");
+ throw new ErrorException("璁㈠崟缂栧彿杈撳叆鏈夎,鎴栬�呰璁㈠崟缂栧彿宸茬粡鎾ら攢");
}
List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
.eq(InsSample::getSampleCode, sampleCode)
diff --git a/inspect-server/src/main/resources/mapper/WarehouseMapper.xml b/inspect-server/src/main/resources/mapper/WarehouseMapper.xml
index 0be1e14..0a64ac5 100644
--- a/inspect-server/src/main/resources/mapper/WarehouseMapper.xml
+++ b/inspect-server/src/main/resources/mapper/WarehouseMapper.xml
@@ -3,14 +3,13 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.WarehouseMapper">
-
<resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.Warehouse">
- <id property="id" column="id" jdbcType="INTEGER"/>
- <result property="name" column="name" jdbcType="VARCHAR"/>
- <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
- <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
- <result property="createUser" column="create_user" jdbcType="INTEGER"/>
- <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="name" column="name" jdbcType="VARCHAR"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
</resultMap>
<resultMap id="Warehouse" type="com.yuanchu.mom.dto.WarehouseDto">
@@ -24,10 +23,32 @@
<result property="name" column="sName" jdbcType="VARCHAR"/>
<result property="row" column="row" jdbcType="INTEGER"/>
<result property="col" column="col" jdbcType="INTEGER"/>
+ <collection property="warehouseCellList" resultMap="cell"/>
+ </resultMap>
+
+ <resultMap id="cell" type="com.yuanchu.mom.pojo.WarehouseCell">
+ <id property="id" column="cId" jdbcType="INTEGER"/>
+ <result property="row" column="crow" jdbcType="INTEGER"/>
+ <result property="col" column="ccol" jdbcType="INTEGER"/>
</resultMap>
<select id="selectWarehouseList" resultMap="Warehouse">
- select w.id,w.name,ws.id sId,ws.name sName,ws.row,ws.col,ws.warehouse_id from warehouse w
- left join warehouse_shelf ws on w.id = ws.warehouse_id
+ select w.id,
+ w.name,
+ ws.id sId,
+ ws.name sName,
+ ws.row,
+ ws.col,
+ wc.id cId,
+ wc.row crow,
+ wc.col ccol
+ from warehouse w
+ left join warehouse_shelf ws on w.id = ws.warehouse_id
+ left join warehouse_cell wc on shelf_id = ws.id
+ left join
+ (select cell_id, count(*) num from warehouse_history group by cell_id) a on cell_id = wc.id
+ where num is null
+ or num % 2 = 0
+ order by id, sId, crow, ccol
</select>
</mapper>
--
Gitblit v1.9.3