Browse Source

2025-11-03

pda属性变动优化
master
fengyuan_yang 2 months ago
parent
commit
68eeb91a7a
  1. 7
      src/main/java/com/gaotao/modules/propertyChange/controller/PropertyChangeController.java
  2. 15
      src/main/java/com/gaotao/modules/propertyChange/service/impl/PropertyChangeServiceImpl.java
  3. 6
      src/main/resources/mapper/propertyChange/PropertyChangeMapper.xml

7
src/main/java/com/gaotao/modules/propertyChange/controller/PropertyChangeController.java

@ -56,7 +56,7 @@ public class PropertyChangeController {
Map<String, Object> stockInfo = propertyChangeService.getStockInfoByLabelCode(labelCode.trim(), site.trim(), warehouseId.trim());
if (stockInfo == null) {
return R.error("未找到该标签的库存信息,请检查标签条码是否正确或该标签是否在库");
return R.error("标签不存在!");
}
logger.info("获取库存信息成功,标签条码: {}", labelCode);
@ -101,18 +101,21 @@ public class PropertyChangeController {
// 检查是否有变动内容
String newLocationId = (String) params.get("newLocationId");
String newStatus = (String) params.get("newStatus");
String newProductionDate = (String) params.get("newProductionDate");
String newExpiryDate = (String) params.get("newExpiryDate");
String oldLocationId = (String) params.get("oldLocationId");
String oldStatus = (String) params.get("oldStatus");
String oldProductionDate = (String) params.get("oldProductionDate");
String oldExpiryDate = (String) params.get("oldExpiryDate");
boolean hasLocationChange = newLocationId != null && !newLocationId.trim().isEmpty() && !newLocationId.equals(oldLocationId);
boolean hasStatusChange = newStatus != null && !newStatus.trim().isEmpty() && !newStatus.equals(oldStatus);
boolean hasProductionDateChange = newProductionDate != null && !newProductionDate.trim().isEmpty() && !newProductionDate.equals(oldProductionDate);
boolean hasExpiryDateChange = newExpiryDate != null && !newExpiryDate.trim().isEmpty() && !newExpiryDate.equals(oldExpiryDate);
if (!hasLocationChange && !hasProductionDateChange && !hasExpiryDateChange) {
if (!hasLocationChange && !hasStatusChange && !hasProductionDateChange && !hasExpiryDateChange) {
return R.error("没有检测到属性变动,请修改后再提交");
}

15
src/main/java/com/gaotao/modules/propertyChange/service/impl/PropertyChangeServiceImpl.java

@ -80,10 +80,12 @@ public class PropertyChangeServiceImpl extends ServiceImpl<PropertyChangeMapper,
// 获取变动信息
String newLocationId = (String) params.get("newLocationId");
String newStatus = (String) params.get("newStatus");
String newProductionDateStr = (String) params.get("newProductionDate");
String newExpiryDateStr = (String) params.get("newExpiryDate");
String oldLocationId = (String) params.get("oldLocationId");
String oldStatus = (String) params.get("oldStatus");
String oldProductionDateStr = (String) params.get("oldProductionDate");
String oldExpiryDateStr = (String) params.get("oldExpiryDate");
@ -99,6 +101,10 @@ public class PropertyChangeServiceImpl extends ServiceImpl<PropertyChangeMapper,
updateParams.put("newLocationId", newLocationId.trim());
}
if (newStatus != null && !newStatus.trim().isEmpty()) {
updateParams.put("newStatus", newStatus.trim());
}
if (newProductionDateStr != null && !newProductionDateStr.trim().isEmpty()) {
Date newProductionDate = dateFormat.parse(newProductionDateStr);
updateParams.put("newProductionDate", newProductionDate);
@ -116,7 +122,7 @@ public class PropertyChangeServiceImpl extends ServiceImpl<PropertyChangeMapper,
}
// 3. 生成标签变动事务记录
generatePropertyChangeTransaction(site, buNo, warehouseId, labelCode, partNo, batchNo, quantity, oldLocationId, newLocationId, oldProductionDateStr, newProductionDateStr, oldExpiryDateStr, newExpiryDateStr);
generatePropertyChangeTransaction(site, buNo, warehouseId, labelCode, partNo, batchNo, quantity, oldLocationId, newLocationId, oldStatus, newStatus, oldProductionDateStr, newProductionDateStr, oldExpiryDateStr, newExpiryDateStr);
logger.info("属性变动保存成功,标签条码: {}", labelCode);
return true;
@ -136,7 +142,7 @@ public class PropertyChangeServiceImpl extends ServiceImpl<PropertyChangeMapper,
* 生成属性变动事务记录
*/
private void generatePropertyChangeTransaction(String site, String buNo, String warehouseId, String labelCode, String partNo, String batchNo, Float quantity,
String oldLocationId, String newLocationId, String oldProductionDate, String newProductionDate, String oldExpiryDate, String newExpiryDate) {
String oldLocationId, String newLocationId, String oldStatus, String newStatus, String oldProductionDate, String newProductionDate, String oldExpiryDate, String newExpiryDate) {
logger.info("开始生成属性变动事务记录,标签条码: {}", labelCode);
try {
@ -145,6 +151,9 @@ public class PropertyChangeServiceImpl extends ServiceImpl<PropertyChangeMapper,
if (newLocationId != null && !newLocationId.equals(oldLocationId)) {
changeDesc.append("库位[").append(oldLocationId).append("→").append(newLocationId).append("] ");
}
if (newStatus != null && !newStatus.equals(oldStatus)) {
changeDesc.append("状态[").append(oldStatus).append("→").append(newStatus).append("] ");
}
if (newProductionDate != null && !newProductionDate.equals(oldProductionDate)) {
changeDesc.append("生产日期[").append(oldProductionDate).append("→").append(newProductionDate).append("] ");
}
@ -175,6 +184,8 @@ public class PropertyChangeServiceImpl extends ServiceImpl<PropertyChangeMapper,
labelInfo.put("quantity", quantity);
labelInfo.put("oldLocationId", oldLocationId);
labelInfo.put("newLocationId", newLocationId);
labelInfo.put("oldStatus", oldStatus);
labelInfo.put("newStatus", newStatus);
labelInfo.put("oldProductionDate", oldProductionDate);
labelInfo.put("newProductionDate", newProductionDate);
labelInfo.put("oldExpiryDate", oldExpiryDate);

6
src/main/resources/mapper/propertyChange/PropertyChangeMapper.xml

@ -10,6 +10,7 @@
s.bu_no as buNo,
s.warehouse_id as warehouseId,
s.part_no as partNo,
P.PartDescription as partDesc,
s.batch_no as batchNo,
s.location_id as locationId,
s.qty_on_hand as qtyOnHand,
@ -25,10 +26,10 @@
w.WareHouseName as warehouseName
FROM inventory_stock s
LEFT JOIN warehouse w ON s.warehouse_id = w.WareHouseID AND s.site = w.site
INNER JOIN PART P ON S.SITE = P.SITE AND S.PART_NO = P.PARTNO
WHERE s.roll_no = #{labelCode}
AND s.site = #{site}
AND s.warehouse_id = #{warehouseId}
AND s.status = '在库'
AND s.qty_on_hand > 0
</select>
@ -39,6 +40,9 @@
<if test="params.newLocationId != null and params.newLocationId != ''">
location_id = #{params.newLocationId},
</if>
<if test="params.newStatus != null and params.newStatus != ''">
status = #{params.newStatus},
</if>
<if test="params.newProductionDate != null">
manufacture_date = #{params.newProductionDate},
</if>

Loading…
Cancel
Save