java110 5 år sedan
förälder
incheckning
4451313330

+ 60 - 28
java110-bean/src/main/java/com/java110/dto/allocationStorehouse/AllocationStorehouseDto.java

@@ -1,6 +1,7 @@
 package com.java110.dto.allocationStorehouse;
 
 import com.java110.dto.PageDto;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -14,16 +15,20 @@ import java.util.Date;
  **/
 public class AllocationStorehouseDto extends PageDto implements Serializable {
 
+    public static final String STATE_AUDIT = "1201";//状态,1201 调拨审核 1202 调拨完成 1202 调拨失败
+    public static final String STATE_SUCCESS = "1202";//状态,1201 调拨审核 1202 调拨完成 1202 调拨失败
+    public static final String STATE_FAIL = "1203";//状态,1201 调拨审核 1202 调拨完成 1202 调拨失败
     private String asId;
-private String storeId;
-private String resId;
-private String shIdz;
-private String resName;
-private String startUserId;
-private String shIda;
-private String startUserName;
-private String state;
-private String stock;
+    private String storeId;
+    private String resId;
+    private String shIdz;
+    private String resName;
+    private String startUserId;
+    private String shIda;
+    private String startUserName;
+    private String state;
+    private String stock;
+    private String remark;
 
 
     private Date createTime;
@@ -34,61 +39,80 @@ private String stock;
     public String getAsId() {
         return asId;
     }
-public void setAsId(String asId) {
+
+    public void setAsId(String asId) {
         this.asId = asId;
     }
-public String getStoreId() {
+
+    public String getStoreId() {
         return storeId;
     }
-public void setStoreId(String storeId) {
+
+    public void setStoreId(String storeId) {
         this.storeId = storeId;
     }
-public String getResId() {
+
+    public String getResId() {
         return resId;
     }
-public void setResId(String resId) {
+
+    public void setResId(String resId) {
         this.resId = resId;
     }
-public String getShIdz() {
+
+    public String getShIdz() {
         return shIdz;
     }
-public void setShIdz(String shIdz) {
+
+    public void setShIdz(String shIdz) {
         this.shIdz = shIdz;
     }
-public String getResName() {
+
+    public String getResName() {
         return resName;
     }
-public void setResName(String resName) {
+
+    public void setResName(String resName) {
         this.resName = resName;
     }
-public String getStartUserId() {
+
+    public String getStartUserId() {
         return startUserId;
     }
-public void setStartUserId(String startUserId) {
+
+    public void setStartUserId(String startUserId) {
         this.startUserId = startUserId;
     }
-public String getShIda() {
+
+    public String getShIda() {
         return shIda;
     }
-public void setShIda(String shIda) {
+
+    public void setShIda(String shIda) {
         this.shIda = shIda;
     }
-public String getStartUserName() {
+
+    public String getStartUserName() {
         return startUserName;
     }
-public void setStartUserName(String startUserName) {
+
+    public void setStartUserName(String startUserName) {
         this.startUserName = startUserName;
     }
-public String getState() {
+
+    public String getState() {
         return state;
     }
-public void setState(String state) {
+
+    public void setState(String state) {
         this.state = state;
     }
-public String getStock() {
+
+    public String getStock() {
         return stock;
     }
-public void setStock(String stock) {
+
+    public void setStock(String stock) {
         this.stock = stock;
     }
 
@@ -108,4 +132,12 @@ public void setStock(String stock) {
     public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
 }

+ 56 - 31
java110-bean/src/main/java/com/java110/po/allocationStorehouse/AllocationStorehousePo.java

@@ -1,81 +1,106 @@
 package com.java110.po.allocationStorehouse;
 
 import java.io.Serializable;
-import java.util.Date;
 
 public class AllocationStorehousePo implements Serializable {
 
     private String asId;
-private String storeId;
-private String resId;
-private String shIdz;
-private String resName;
-private String startUserId;
-private String shIda;
-private String startUserName;
-private String state;
-private String stock;
-public String getAsId() {
+    private String storeId;
+    private String resId;
+    private String shIdz;
+    private String resName;
+    private String startUserId;
+    private String shIda;
+    private String startUserName;
+    private String state;
+    private String stock;
+    private String remark;
+
+    public String getAsId() {
         return asId;
     }
-public void setAsId(String asId) {
+
+    public void setAsId(String asId) {
         this.asId = asId;
     }
-public String getStoreId() {
+
+    public String getStoreId() {
         return storeId;
     }
-public void setStoreId(String storeId) {
+
+    public void setStoreId(String storeId) {
         this.storeId = storeId;
     }
-public String getResId() {
+
+    public String getResId() {
         return resId;
     }
-public void setResId(String resId) {
+
+    public void setResId(String resId) {
         this.resId = resId;
     }
-public String getShIdz() {
+
+    public String getShIdz() {
         return shIdz;
     }
-public void setShIdz(String shIdz) {
+
+    public void setShIdz(String shIdz) {
         this.shIdz = shIdz;
     }
-public String getResName() {
+
+    public String getResName() {
         return resName;
     }
-public void setResName(String resName) {
+
+    public void setResName(String resName) {
         this.resName = resName;
     }
-public String getStartUserId() {
+
+    public String getStartUserId() {
         return startUserId;
     }
-public void setStartUserId(String startUserId) {
+
+    public void setStartUserId(String startUserId) {
         this.startUserId = startUserId;
     }
-public String getShIda() {
+
+    public String getShIda() {
         return shIda;
     }
-public void setShIda(String shIda) {
+
+    public void setShIda(String shIda) {
         this.shIda = shIda;
     }
-public String getStartUserName() {
+
+    public String getStartUserName() {
         return startUserName;
     }
-public void setStartUserName(String startUserName) {
+
+    public void setStartUserName(String startUserName) {
         this.startUserName = startUserName;
     }
-public String getState() {
+
+    public String getState() {
         return state;
     }
-public void setState(String state) {
+
+    public void setState(String state) {
         this.state = state;
     }
-public String getStock() {
+
+    public String getStock() {
         return stock;
     }
-public void setStock(String stock) {
+
+    public void setStock(String stock) {
         this.stock = stock;
     }
 
+    public String getRemark() {
+        return remark;
+    }
 
-
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
 }

+ 6 - 6
java110-db/src/main/resources/mapper/store/AllocationStorehouseServiceDaoImplMapper.xml

@@ -7,9 +7,9 @@
     <!-- 保存仓库调拨信息 add by wuxw 2018-07-03 -->
     <insert id="saveBusinessAllocationStorehouseInfo" parameterType="Map">
         insert into business_allocation_storehouse(
-        as_id,store_id,res_id,sh_id_z,res_name,start_user_id,operate,sh_id_a,start_user_name,state,b_id,stock
+        as_id,store_id,res_id,sh_id_z,res_name,start_user_id,operate,sh_id_a,start_user_name,state,b_id,stock,remark
         ) values (
-        #{asId},#{storeId},#{resId},#{shIdz},#{resName},#{startUserId},#{operate},#{shIda},#{startUserName},#{state},#{bId},#{stock}
+        #{asId},#{storeId},#{resId},#{shIdz},#{resName},#{startUserId},#{operate},#{shIda},#{startUserName},#{state},#{bId},#{stock},#{remark}
         )
     </insert>
 
@@ -18,7 +18,7 @@
     <select id="getBusinessAllocationStorehouseInfo" parameterType="Map" resultType="Map">
         select t.as_id,t.as_id asId,t.store_id,t.store_id storeId,t.res_id,t.res_id resId,t.sh_id_z,t.sh_id_z
         shIdz,t.res_name,t.res_name resName,t.start_user_id,t.start_user_id startUserId,t.operate,t.sh_id_a,t.sh_id_a
-        shIda,t.start_user_name,t.start_user_name startUserName,t.state,t.b_id,t.b_id bId,t.stock
+        shIda,t.start_user_name,t.start_user_name startUserName,t.state,t.b_id,t.b_id bId,t.stock,t.remark
         from business_allocation_storehouse t
         where 1 =1
         <if test="asId !=null and asId != ''">
@@ -64,9 +64,9 @@
     <!-- 保存仓库调拨信息至 instance表中 add by wuxw 2018-07-03 -->
     <insert id="saveAllocationStorehouseInfoInstance" parameterType="Map">
         insert into allocation_storehouse(
-        as_id,status_cd,store_id,res_id,sh_id_z,res_name,start_user_id,sh_id_a,start_user_name,state,b_id,stock
+        as_id,status_cd,store_id,res_id,sh_id_z,res_name,start_user_id,sh_id_a,start_user_name,state,b_id,stock,remark
         ) select
-        t.as_id,'0',t.store_id,t.res_id,t.sh_id_z,t.res_name,t.start_user_id,t.sh_id_a,t.start_user_name,t.state,t.b_id,t.stock
+        t.as_id,'0',t.store_id,t.res_id,t.sh_id_z,t.res_name,t.start_user_id,t.sh_id_a,t.start_user_name,t.state,t.b_id,t.stock,t.remark
         from business_allocation_storehouse t where 1=1
         <if test="asId !=null and asId != ''">
             and t.as_id= #{asId}
@@ -111,7 +111,7 @@
         select t.as_id,t.as_id asId,t.status_cd,t.status_cd statusCd,t.store_id,t.store_id storeId,t.res_id,t.res_id
         resId,t.sh_id_z,t.sh_id_z shIdz,t.res_name,t.res_name resName,t.start_user_id,t.start_user_id
         startUserId,t.sh_id_a,t.sh_id_a shIda,t.start_user_name,t.start_user_name startUserName,t.state,t.b_id,t.b_id
-        bId,t.stock
+        bId,t.stock,t.remark
         from allocation_storehouse t
         where 1 =1
         <if test="asId !=null and asId != ''">

+ 52 - 1
service-api/src/main/java/com/java110/api/listener/resourceStore/SaveAllocationStorehouseListener.java

@@ -6,11 +6,20 @@ import com.java110.api.listener.AbstractServiceApiPlusListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.dto.allocationStorehouse.AllocationStorehouseDto;
+import com.java110.dto.resourceStore.ResourceStoreDto;
+import com.java110.intf.store.IResourceStoreInnerServiceSMO;
+import com.java110.po.allocationStorehouse.AllocationStorehousePo;
+import com.java110.po.purchase.ResourceStorePo;
+import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.ServiceCodeAllocationStorehouseConstant;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 
+import java.util.List;
+
 /**
  * 保存商户侦听
  * add by wuxw 2019-06-30
@@ -21,6 +30,9 @@ public class SaveAllocationStorehouseListener extends AbstractServiceApiPlusList
     @Autowired
     private IAllocationStorehouseBMO allocationStorehouseBMOImpl;
 
+    @Autowired
+    private IResourceStoreInnerServiceSMO resourceStoreInnerServiceSMOImpl;
+
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
         //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
@@ -31,11 +43,50 @@ public class SaveAllocationStorehouseListener extends AbstractServiceApiPlusList
         Assert.hasKeyAndValue(reqJson, "stock", "请求报文中未包含stock");
         Assert.hasKeyAndValue(reqJson, "storeId", "请求报文中未包含storeId");
 
+        //校验 物品是否存在
+
+        ResourceStoreDto resourceStoreDto = new ResourceStoreDto();
+        resourceStoreDto.setStoreId(reqJson.getString("storeId"));
+        resourceStoreDto.setResId(reqJson.getString("resId"));
+        resourceStoreDto.setShId(reqJson.getString("shIda"));
+        List<ResourceStoreDto> resourceStoreDtos = resourceStoreInnerServiceSMOImpl.queryResourceStores(resourceStoreDto);
+
+        Assert.listOnlyOne(resourceStoreDtos, "未包含 物品信息");
+
+        int stockA = Integer.parseInt(resourceStoreDtos.get(0).getStock());
+        int stockB = Integer.parseInt(reqJson.getString("stock"));
+
+        if (stockA < stockB) {
+            throw new IllegalArgumentException("库存不足");
+        }
+
+        reqJson.put("resName", resourceStoreDtos.get(0).getResName());
+        reqJson.put("stockA", stockA);
+
+
     }
 
     @Override
     protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-        allocationStorehouseBMOImpl.addAllocationStorehouse(reqJson, context);
+
+        reqJson.put("asId", "-1");
+        AllocationStorehousePo allocationStorehousePo = BeanConvertUtil.covertBean(reqJson, AllocationStorehousePo.class);
+        allocationStorehousePo.setRemark(reqJson.getString("remark"));
+        allocationStorehousePo.setStartUserId(reqJson.getString("userId"));
+        allocationStorehousePo.setStartUserName(reqJson.getString("userName"));
+        allocationStorehousePo.setState(AllocationStorehouseDto.STATE_AUDIT);
+        super.insert(context, allocationStorehousePo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ALLOCATION_STOREHOUSE);
+
+        // 前去库存
+
+        ResourceStorePo resourceStorePo = new ResourceStorePo();
+        resourceStorePo.setResId(reqJson.getString("resId"));
+        resourceStorePo.setStoreId(reqJson.getString("storeId"));
+        resourceStorePo.setShId(reqJson.getString("shIda"));
+        int stockA = Integer.parseInt(reqJson.getString("stockA"));
+        int stockB = Integer.parseInt(reqJson.getString("stock"));
+        resourceStorePo.setStock((stockA - stockB) + "");
+        super.update(context, resourceStorePo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_RESOURCE_STORE);
     }
 
     @Override

+ 2 - 0
service-store/src/main/java/com/java110/store/listener/allocationStorehouse/AbstractAllocationStorehouseBusinessServiceDataFlowListener.java

@@ -48,6 +48,7 @@ public abstract class AbstractAllocationStorehouseBusinessServiceDataFlowListene
         businessAllocationStorehouseInfo.put("startUserName", businessAllocationStorehouseInfo.get("start_user_name"));
         businessAllocationStorehouseInfo.put("state", businessAllocationStorehouseInfo.get("state"));
         businessAllocationStorehouseInfo.put("stock", businessAllocationStorehouseInfo.get("stock"));
+        businessAllocationStorehouseInfo.put("remark", businessAllocationStorehouseInfo.get("remark"));
         businessAllocationStorehouseInfo.remove("bId");
         businessAllocationStorehouseInfo.put("statusCd", statusCd);
     }
@@ -83,6 +84,7 @@ public abstract class AbstractAllocationStorehouseBusinessServiceDataFlowListene
         currentAllocationStorehouseInfo.put("startUserName", currentAllocationStorehouseInfo.get("start_user_name"));
         currentAllocationStorehouseInfo.put("state", currentAllocationStorehouseInfo.get("state"));
         currentAllocationStorehouseInfo.put("stock", currentAllocationStorehouseInfo.get("stock"));
+        currentAllocationStorehouseInfo.put("remark", currentAllocationStorehouseInfo.get("remark"));
 
 
         currentAllocationStorehouseInfo.put("operate", StatusConstant.OPERATE_DEL);