Redeem hai 1 ano
pai
achega
12c09344ad

+ 17 - 0
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderMaterialController.java

@@ -195,6 +195,23 @@ public class AmsSaleOrderMaterialController extends BaseRESTfulController {
         return success(result);
     }
 
+
+    /**
+     * 车序号与物资新增,2023年12月12日重新写的一个方法
+     * @param mapList
+     * @return
+     */
+    @ApiOperation(value="车序号与物资新增")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "addTruckNoGreat", value = "车序号与物资新增", required = false, dataType = "AmsSaleOrderMaterial")
+    })
+    @PostMapping(value = "/addTruckNoGreat")
+    public RESTfulResult addTruckNoGreat(@RequestBody List<Map<String,Object>> mapList){
+        System.out.println("mapList"+mapList);
+        int result = amsSaleOrderMaterialService.addTruckNoGreat(mapList);
+        return success(result);
+    }
+
     /**
      * 下发车序号
      * @param mapList

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/AmsSaleOrderMaterialMapper.java

@@ -105,4 +105,6 @@ public interface AmsSaleOrderMaterialMapper extends IBaseMapper<AmsSaleOrderMate
 
     int updateOrderCarrier(@Param("saleOrderMaterialId") BigDecimal saleOrderMaterialId, @Param("carrierId") BigDecimal carrierId);
 
+    BigDecimal getMaxCxh(BigDecimal saleOrderId);
+
 }

+ 2 - 0
src/main/java/com/steerinfo/dil/service/IAmsSaleOrderMaterialService.java

@@ -80,4 +80,6 @@ public interface IAmsSaleOrderMaterialService{
 
     Object batchUpdateSaleDate();
 
+    int addTruckNoGreat(List<Map<String, Object>> mapList);
+
 }

+ 94 - 0
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderMaterialServiceImpl.java

@@ -1274,4 +1274,98 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
         System.out.println(saleOrderIds + ":saleOrderIds");
         return null;
     }
+
+    @Override
+    public synchronized int addTruckNoGreat(List<Map<String, Object>> mapList) {
+
+        int result = 0;
+        for (Map<String, Object> map : mapList) {
+            // 销售订单id
+            BigDecimal saleOrderId = DataChange.dataToBigDecimal(map.get("saleOrderId"));
+            // 车序号
+            BigDecimal truckNo = DataChange.dataToBigDecimal(map.get("truckNo"));
+            AmsSaleOrderMaterial amsSaleOrderMaterial;
+            Map<String,Object> saleMap = new HashMap<>();
+            saleMap.put("saleOrderId",saleOrderId);
+            saleMap.put("saleOrderMaterialTruckNo",truckNo);
+            // 检测销售订单下的车序号是否已存在
+            List<AmsSaleOrderMaterial> amsSaleOrderMaterials = amsSaleOrderMaterialMapper.selectByParameters(saleMap);
+            // 如果已存在则不处理
+            if (amsSaleOrderMaterials != null && amsSaleOrderMaterials.size() != 0) {
+                amsSaleOrderMaterial = amsSaleOrderMaterials.get(0);
+            }
+            // 如果不存在则新增车序号
+            else {
+                amsSaleOrderMaterial = new AmsSaleOrderMaterial();
+                // 收货地址id
+                BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("shippingAddressId"));
+                String place = (String) (map.get("place"));
+                if (place != null) {
+                    List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place,shippingAddressId);
+                    if (placeIdList == null || placeIdList.size() == 0) {
+                        RmsReceivePlace rmsReceivePlace = new RmsReceivePlace();
+                        rmsReceivePlace.setPlaceId(rmsReceivePlaceMapper.selectMaxId());
+                        rmsReceivePlace.setAddressId(shippingAddressId);
+                        rmsReceivePlace.setAddressDeliveryAddress(place);
+                        amsSaleOrderMaterial.setSaleShippingAddressId(rmsReceivePlace.getPlaceId());
+                        rmsReceivePlaceMapper.insertSelective(rmsReceivePlace);
+                    } else {
+                        amsSaleOrderMaterial.setSaleShippingAddressId((BigDecimal) placeIdList.get(0).get("placeId"));
+                    }
+                }
+                Date dateOfReceipt = new Date((Long) map.get("dateOfReceipt"));
+                // 收货方姓名
+                String orderConsignee = (String) map.get("orderConsignee");
+                // 收货方联系方式
+                Object orderConsigneeTel = map.get("orderConsigneeTel");
+                BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
+                amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
+                amsSaleOrderMaterial.setSaleOrderId(saleOrderId);
+                amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(truckNo);
+                // 钢材收货日期
+                amsSaleOrderMaterial.setSaleDateOfReceipt(dateOfReceipt);
+                amsSaleOrderMaterial.setSaleOrderConsignee(orderConsignee);
+                if (orderConsignee != null) {
+                    amsSaleOrderMaterial.setSaleOrderConsigneeTel(orderConsigneeTel.toString());
+                }
+                Object priceId = map.get("priceId");
+                if(priceId != null && !"".equals(priceId)) amsSaleOrderMaterial.setPriceId(DataChange.dataToBigDecimal(priceId));
+                amsSaleOrderMaterial.setInsertTime(new Date());
+                amsSaleOrderMaterial.setInsertUsername("admin");
+                amsSaleOrderMaterial.setDeleted(new BigDecimal(0));
+                amsSaleOrderMaterial.setInsertUpdateRemark("无");
+                amsSaleOrderMaterial.setUpdated(new BigDecimal(0));
+                amsSaleOrderMaterial.setIssueStatus(new BigDecimal(2));
+                AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
+                amsDispatchSaleOrder.setDispatchId(amsDispatchSaleOrderMapper.selectOtherId());
+                amsDispatchSaleOrder.setSaleOrderMaterialId(saleOrderMaterialId);
+                amsDispatchSaleOrder.setCarrierId(DataChange.dataToBigDecimal(map.get("carrierId")));
+                amsDispatchSaleOrder.setDispatchTime(new Date());
+                // 设置为定向派单
+                amsDispatchSaleOrder.setDispatchType(new BigDecimal(0));
+                amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(0));
+                amsDispatchSaleOrder.setInsertTime(new Date());
+                amsDispatchSaleOrder.setInsertUsername("admin");
+                amsDispatchSaleOrder.setInsertUpdateRemark("无");
+                result += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
+                result += amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
+            }
+            // 新增车序号与物资中间表
+            AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
+            // 物资id
+            BigDecimal materialId = DataChange.dataToBigDecimal(map.get("saleMaterialId"));
+            // 物资数量
+            BigDecimal materialNumber = DataChange.dataToBigDecimal(map.get("materialNumber"));
+            BigDecimal saleTrucknoMaterialId = amsSaleTrucknoMaterialMapper.selectMaxId();
+            amsSaleTrucknoMaterial.setTrucknoMaterialId(saleTrucknoMaterialId);
+            amsSaleTrucknoMaterial.setMaterialId(materialId);
+            amsSaleTrucknoMaterial.setSaleOrderMaterialId(amsSaleOrderMaterial.getSaleOrderMaterialId());
+            amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(materialNumber);
+            amsSaleTrucknoMaterial.setInsertTime(new Date());
+            amsSaleTrucknoMaterial.setInsertUsername("admin");
+            amsSaleTrucknoMaterial.setInsertUpdateRemark("无");
+            result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial);
+        }
+        return result;
+    }
 }

+ 6 - 0
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -546,7 +546,13 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     @Override
     public List<Map<String, Object>> getSaleOrderAndMaterialById(Map<String,Object> mapValue) {
         List<Map<String, Object>> mapList=amsSaleOrderMapper.getSaleOrderAndMaterialById(mapValue);
+        BigDecimal maxCxh = null;
+        if(mapValue.get("saleOrderId") != null) {
+            //如果销售订单存在,那么去获取该销售订单下最大的车序号
+            maxCxh = amsSaleOrderMaterialMapper.getMaxCxh(DataChange.dataToBigDecimal(mapValue.get("saleOrderId")));
+        }
         for (Map<String, Object> map : mapList) {
+            map.put("maxCxh",maxCxh);
             BigDecimal number;
             BigDecimal materialNumber = (BigDecimal) map.get("materialNumber");
             BigDecimal materialWeight = (BigDecimal) map.get("materialWeight");

+ 6 - 0
src/main/resources/com/steerinfo/dil/mapper/AmsDispatchSaleOrderMapper.xml

@@ -534,6 +534,12 @@
         <if test="carrierId != null">
             AND ADSO.CARRIER_ID = #{carrierId}
         </if>
+        <if test="consigneeCompanyName != null">
+            and
+            <foreach collection="consigneeCompanyName" item="item" open="(" separator="or" close=")">
+                RC.CONSIGNEE_COMPANY_NAME like '%${item}%'
+            </foreach>
+        </if>
         AND OO.CAPACITY_ID IS NULL
         AND ADSO.DISPATCH_DEAL_TIME IS NOT NULL
         ORDER BY ADSO.DISPATCH_DEAL_TIME DESC

+ 2 - 1
src/main/resources/com/steerinfo/dil/mapper/AmsSaleMaterialMapper.xml

@@ -843,7 +843,8 @@
 
   <update id="adverseCloseSaleMaterial" parameterType="DECIMAL">
     UPDATE AMS_SALE_MATERIAL ASM
-    SET ASM.DELETED = NULL
+    SET ASM.DELETED = NULL,
+        ASM.INSERT_UPDATE_REMARK = '金蝶反关闭分录,物流同步反关闭'
     WHERE ASM.SALE_MATERIAL_ID = #{saleMaterialId}
   </update>
   <update id="updateSaleMaterial" parameterType="decimal">

+ 6 - 1
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMaterialMapper.xml

@@ -1059,10 +1059,15 @@
     WHERE ORDER_PLAN_ID = #{saleOrderMaterialId}
     AND ORDER_TYPE = 1
   </select>
-  <update id="updateOrderCarrier">
+    <update id="updateOrderCarrier">
     UPDATE OMSTRUCK_ORDER
     SET CARRIER_ID = #{carrierId}
     WHERE ORDER_PLAN_ID = #{saleOrderMaterialId}
     AND ORDER_TYPE = 1
   </update>
+  <select id="getMaxCxh" resultType="java.math.BigDecimal" parameterType="decimal">
+    SELECT nvl(max(ASOM.SALE_ORDER_MATERIAL_TRUCK_NO),0) FROM AMS_SALE_ORDER_MATERIAL ASOM
+    WHERE ASOM.SALE_ORDER_ID = #{saleOrderId}
+  </select>
+
 </mapper>

+ 4 - 1
src/main/resources/com/steerinfo/dil/mapper/AmstruckSporadicMaterialMapper.xml

@@ -462,7 +462,8 @@
   ASO.TRANS_STATUS "transStatus",
   ASO.SPORADIC_ORDER_TIMES "orderTimes",
   ASO.SPORADIC_TRANS_TIMES "transTimes",
-  RSU.SUPPLIER_NAME || RCO.CONSIGNEE_COMPANY_NAME "likeCon"
+  RSU.SUPPLIER_NAME || RCO.CONSIGNEE_COMPANY_NAME "likeCon",
+  rl.LINE_NAME  "lineName"
   FROM AMSTRUCK_SPORADIC_ORDER ASO
   LEFT JOIN RMS_CONSIGNEE RCO
   ON ASO.RECEIVE_UNIT_ID = RCO.CONSIGNEE_ID
@@ -472,6 +473,8 @@
   ON RCA.CARRIER_ID = ASO.CARRIER_ID
   LEFT JOIN OMSTRUCK_ORDER OO
   ON OO.ORDER_PLAN_ID = ASO.SPORADIC_ORDER_ID
+  LEFT JOIN RMS_LINE RL
+  ON OO.LINE_ID = RL.LINE_ID
   WHERE OO.ORDER_TYPE in (12,13,14,19)
   AND ASO.ISSUE_STATUS = #{issueStatus}
   AND ASO.DELETED = 0

+ 8 - 2
src/main/resources/com/steerinfo/dil/mapper/AmstruckSporadicOrderMapper.xml

@@ -526,7 +526,8 @@
         OO.ORDER_TYPE AS "type",
         OO.ORDER_ID "orderId",
         OO.ORDER_STATUS "orderStatus",
-        ASO.TRANS_STATUS "transStatus"
+        ASO.TRANS_STATUS "transStatus",
+        RL.LINE_NAME "lineName"
         FROM AMSTRUCK_SPORADIC_ORDER ASO
         LEFT JOIN RMS_CONSIGNEE RCO
         ON ASO.RECEIVE_UNIT_ID = RCO.CONSIGNEE_ID
@@ -536,6 +537,8 @@
         ON RCA.CARRIER_ID = ASO.CARRIER_ID
         LEFT JOIN OMSTRUCK_ORDER OO
         ON OO.ORDER_PLAN_ID = ASO.SPORADIC_ORDER_ID
+        LEFT JOIN RMS_LINE RL
+        ON RL.LINE_ID = OO.LINE_ID
         WHERE OO.ORDER_TYPE in (12,13,14,19)
         AND ASO.ISSUE_STATUS = #{issueStatus}
         AND ASO.DELETED = 0
@@ -600,7 +603,8 @@
         OO.ORDER_ID "orderId",
         RM.MATERIAL_NAME AS "materialName",
         ASO.SPORADIC_ORDER_TIMES "sporadicOrderTimes",
-        ASO.SPORADIC_TRANS_TIMES "transTimes"
+        ASO.SPORADIC_TRANS_TIMES "transTimes",
+        RL.LINE_NAME    "lineName"
         FROM AMSTRUCK_SPORADIC_ORDER ASO
         LEFT JOIN RMS_CONSIGNEE RCO
         ON ASO.RECEIVE_UNIT_ID = RCO.CONSIGNEE_ID
@@ -617,6 +621,8 @@
         RMS_MATERIAL RM
         ON
         OOM.MATERIAL_ID = RM.MATERIAL_ID
+        LEFT JOIN RMS_LINE RL
+        ON RL.LINE_ID = OO.LINE_ID
         WHERE OO.ORDER_TYPE in (15,16,19)
         AND ASO.ISSUE_STATUS = #{issueStatus}
         AND ASO.DELETED = 0