Tiroble 3 years ago
parent
commit
7d2df3c1b0

+ 1 - 1
src/main/java/com/steerinfo/dil/controller/WmsInboundResultController.java

@@ -281,7 +281,7 @@ public class WmsInboundResultController extends BaseRESTfulController {
                     Map<String,Object> item=mapList.get(i);
 
                     //获得一个默认的网格  解释:目前还没有设计出来网格的结构 没有做默认为 第一库、第一月台、第一垛位、第一行、第一列 \推送信息给行车工、让他们抢单代码备注了
-                    BigDecimal houseGrid = rmsPwarehouseGridService.selectGrid(mapList.size()-(i+1), personnelWorkshopid,new BigDecimal(item.get("materialId").toString()));
+                    BigDecimal houseGrid = new BigDecimal("11330");//rmsPwarehouseGridService.selectGrid(mapList.size()-(i), personnelWorkshopid,new BigDecimal(item.get("materialId").toString()));
                     //创建一个入库作业实绩
                     WmspInboundResult wmspInboundResult = wmsInboundResultServiceImpl.initAndWmspInboundResult(1,i+1,personnelWorkshopid,groupId,userName,wmspInboundDistribute.getDistributeId(),houseGrid,item);
                     //改变扫码实绩里面的状态

+ 18 - 7
src/main/java/com/steerinfo/dil/controller/WmspOutboundResultController.java

@@ -198,8 +198,9 @@ public class WmspOutboundResultController extends BaseRESTfulController {
         //判断物质是否已经被扫描
         int isScan = wmspOutboundResultService.ExistScanResult(subResultMaterial);
         //判断物资是否是需要出库的物资,需要出库物资数量不等于0,通过物资唯一编码和出库实绩
-        Integer materialNumber = wmspOutboundResultMaterialService.isOutboundResultMaterial(MaterialOnlyCode,resultId);
-        //判断物资是否数量已满
+        Map<String,Object> materialMap = wmspOutboundResultMaterialService.isOutboundResultMaterial(MaterialOnlyCode,resultId);
+        Integer materialNumber= Integer.valueOf(materialMap.get("materailNumber").toString());
+        //获得已经扫描的物质数量
         int scanCount = wmspOutboundScanResultService.getScanCount(MaterialOnlyCode,resultId);
 
         //根据物资id查询相对应的入库实绩ID,并将其赋值给相对应的入库扫描实绩表,判断是否入库
@@ -211,11 +212,21 @@ public class WmspOutboundResultController extends BaseRESTfulController {
             BigDecimal personnelId = wmspOutboundResultService.getPersonnelIdByJobnumber(map.get("personnelJobNumber").toString());
             //默认以获取到的第一个值作为入库实绩Id
             Map<String, Object> map1 = list.get(0);
-            int status= wmspOutboundResultService.createOutboundScanResult(subResultMaterial,personnelId,resultId,(BigDecimal)map1.get("inboundResultId"));
+            int status= wmspOutboundResultService.createOutboundScanResult(subResultMaterial,personnelId,resultId,(BigDecimal)map1.get("inboundResultId"),new BigDecimal(materialMap.get("resultMaterialId").toString()));
+            return success(status);
+        }else {
+            if (isScan>0){
+                //重复扫描
+                return failed(-1);
+            }
+            if (list.size()==0){
+                //没有入库
+                return failed(-2);
+            }else {
+                //货物已满
+                return failed(-3);
+            }
         }
-
-        //返回值展示结果
-        return failed();
     }
     /**
      * 编写人:zouzhendon
@@ -502,7 +513,7 @@ public class WmspOutboundResultController extends BaseRESTfulController {
             //创建出库实绩
             WmspOutboundResult wmspOutboundResult=wmspOutboundResultService.createOutboundResult(new BigDecimal(1),new BigDecimal(2));
 
-            int status= wmspOutboundResultService.createOutboundScanResult(materialOnlyCode,new BigDecimal(1),wmspOutboundResult.getResultId(),(BigDecimal)map1.get("inboundResultId"));
+            int status= wmspOutboundResultService.createOutboundScanResult(materialOnlyCode,new BigDecimal(1),wmspOutboundResult.getResultId(),(BigDecimal)map1.get("inboundResultId"),new BigDecimal(1));
         }
         if(result == -1){
             return failed(-1,"请勿重复扫码");

+ 1 - 1
src/main/java/com/steerinfo/dil/mapper/WmspOutboundResultMaterialMapper.java

@@ -18,7 +18,7 @@ public interface WmspOutboundResultMaterialMapper extends IBaseMapper<WmspOutbou
 
     List<OutBoundTypeDetailedInfo> getOutBoundTypeDetailedInfo(@Param("resultId")BigDecimal resultId,@Param("status")Integer status);
 
-    Integer isOutboundResultMaterial(String onlycode, BigDecimal resultId);
+    Map<String,Object> isOutboundResultMaterial(String onlycode, BigDecimal resultId);
 
     int updateStatus(String resultMaterialId);
 }

+ 15 - 0
src/main/java/com/steerinfo/dil/model/WmspOutboundScanResult.java

@@ -81,6 +81,13 @@ public class WmspOutboundScanResult implements IBasePO<BigDecimal> {
     @ApiModelProperty(value="记录创建或修改备注",required=false)
     private String insertUpdateRemark;
 
+
+
+    /**
+     * 实绩与物资ID中间表(RESULT_MATERIAL_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="实绩与物资ID中间表",required=true)
+    private BigDecimal resultMaterialId;
     /**
      * 分组信息
      */
@@ -97,6 +104,14 @@ public class WmspOutboundScanResult implements IBasePO<BigDecimal> {
         this.inboundResultId = inboundResultId;
     }
 
+    public BigDecimal getResultMaterialId() {
+        return resultMaterialId;
+    }
+
+    public void setResultMaterialId(BigDecimal resultMaterialId) {
+        this.resultMaterialId = resultMaterialId;
+    }
+
     @Override
     public BigDecimal getId() {
         return this.resultId;

+ 1 - 1
src/main/java/com/steerinfo/dil/service/IWmspOutboundResultMaterialService.java

@@ -27,7 +27,7 @@ public interface IWmspOutboundResultMaterialService extends IBaseService<WmspOut
 
     List<OutBoundTypeDetailedInfo> getOutBoundTypeDetailedInfo(BigDecimal resultId,Integer stutas);
 
-    Integer isOutboundResultMaterial(String onlycode, BigDecimal resultId);
+    Map<String,Object> isOutboundResultMaterial(String onlycode, BigDecimal resultId);
 
     int updateStatus(String resultMaterialId);
 }

+ 1 - 1
src/main/java/com/steerinfo/dil/service/IWmspOutboundResultService.java

@@ -81,7 +81,7 @@ public interface IWmspOutboundResultService {
 
     OutBoundDetailed getInitOutboundScanResultMaterialInfo(BigDecimal resultId);
 
-    int createOutboundScanResult(String subResultMaterial, BigDecimal personnelId, BigDecimal resultId,BigDecimal inboundResultId);
+    int createOutboundScanResult(String subResultMaterial, BigDecimal personnelId, BigDecimal resultId,BigDecimal inboundResultId,BigDecimal resultMaterialId);
     //删除实时库存
     int deleteGridMaterial(String materialOnlyCode);
 

+ 1 - 1
src/main/java/com/steerinfo/dil/service/impl/WmspOutboundResultMaterialServiceImpl.java

@@ -58,7 +58,7 @@ public class WmspOutboundResultMaterialServiceImpl extends BaseServiceImpl<WmspO
     }
 
     @Override
-    public Integer isOutboundResultMaterial(String onlycode, BigDecimal resultId) {
+    public Map<String,Object> isOutboundResultMaterial(String onlycode, BigDecimal resultId) {
         return wmspOutboundResultMaterialMapper.isOutboundResultMaterial(onlycode,resultId);
     }
 

+ 16 - 11
src/main/java/com/steerinfo/dil/service/impl/WmspOutboundResultServiceImpl.java

@@ -343,7 +343,7 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
     }
 
     @Override
-    public int createOutboundScanResult(String resultMaterial, BigDecimal personnelId, BigDecimal resultId,BigDecimal inboundResultId) {
+    public int createOutboundScanResult(String resultMaterial, BigDecimal personnelId, BigDecimal resultId,BigDecimal inboundResultId,BigDecimal resultMaterialId) {
         //截取扫描结果,得到物资唯一编码
         String[] split = resultMaterial.split("-");
         //唯一编码
@@ -372,6 +372,8 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
         wmspOutboundScanResult.setResultLoadTime(new Date());
         //插入出库物资数量
         wmspOutboundScanResult.setOutboundMaterialNumber(new BigDecimal(1));
+        //出库类型ID
+        wmspOutboundScanResult.setResultMaterialId(resultMaterialId);
         //常规字段
         wmspOutboundScanResult.setInsertUsername("admin");
         wmspOutboundScanResult.setInsertTime(new Date());
@@ -431,10 +433,12 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
         int cunt2=0;
         if (onlycodes.size()>0){
             //查询出已经扫码的物资信息
-            List<OutBoundMaterialDetailedInfo> outBoundMaterialDetailedInfos= wmspOutboundScanResultService.getOutBoundMaterialDetailedInfos(onlycodes,1);
-
+            List<OutBoundMaterialDetailedInfo> outBoundMaterialDetailedInfos= wmspOutboundScanResultService.getOutBoundMaterialDetailedInfos(onlycodes,null);
+            //暂时保存
             //统计出已经扫码的物资数量
-            for (OutBoundTypeDetailedInfo typeDetailedInfo :outBoundTypeDetailedInfos){
+            for ( int i =0;i<outBoundTypeDetailedInfos.size();i++){
+               //初始化一个
+                OutBoundTypeDetailedInfo typeDetailedInfo=outBoundTypeDetailedInfos.get(i);
                 //这一个类型的物资
                 List<OutBoundMaterialDetailedInfo> thisMaterialDetailedInfos=new  ArrayList<>();
 
@@ -454,15 +458,16 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
                     //如果有某一种物资扫满了,需要将这一类物资,在实时库存删除,并且修改出库物资类型状态,发送计量委托
                     int cunt= wmspGridMaterialService.deleteGridMaterial(thisMaterialDetailedInfos);
                     cunt2=wmspOutboundResultMaterialService.updateStatus(typeDetailedInfo.getResultMaterialId());
+                    //如果所以物资都已经结束,需要改变提货单状态
+                    if (outBoundTypeDetailedInfos==null||outBoundTypeDetailedInfos.size()-cunt2==0){
+                        int cunt3=wmspOutboundResultMapper.updateStatus(resultId);
+                        //表示全部完成
+                        return 2;
+                    }
                     //表示一项完成
-                    return 1;
-                }
-                //如果所以物资都已经结束,需要改变提货单状态
-                if (outBoundTypeDetailedInfos==null||outBoundTypeDetailedInfos.size()-cunt2==0){
-                    int cunt3=wmspOutboundResultMapper.updateStatus(resultId);
-                    //表示全部完成
-                    return 2;
+                    return cunt2;
                 }
+
             }
             outBoundDetailed.setOutBoundMaterialDetailedInfos(outBoundMaterialDetailedInfos);
         }

+ 1 - 1
src/main/resources/bootstrap.yml

@@ -1,7 +1,7 @@
 api.version: api/v1/wms
 spring:
   profiles:
-    include: ${SPRING_PROFILES:dev}
+    include: ${SPRING_PROFILES:prod}
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     time-zone: GMT+8

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

@@ -798,9 +798,8 @@
     <delete id="deleteGridMaterial">
     update WMSP_GRID_MATERIAL WGM set WGM.DELETED = 1,UPDATE_TIME = #{now}
     where WGM.MATERIAL_ID in
-    <foreach collection="thisMaterialDetailedInfos" item="item" open="(" separator="or" close=")">
+    <foreach collection="thisMaterialDetailedInfos" item="item" open="(" separator="," close=")">
       #{item.materialSteelId}
     </foreach>
-
   </delete>
 </mapper>

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

@@ -422,8 +422,8 @@
       and worm.status=#{status}
     </if>
   </select>
-  <select id="isOutboundResultMaterial" resultType="java.lang.Integer">
-     select material_number
+  <select id="isOutboundResultMaterial" resultType="java.util.Map">
+     select material_number "materailNumber",RESULT_MATERIAL_ID "resultMaterialId"
      from  wmsp_outbound_result_material
      where material_id in ( select material_id from rms_material_steel  where  material_only_code=#{onlycode}) and OUTBOUND_RESULT_ID=#{resultId}
   </select>

+ 37 - 9
src/main/resources/com/steerinfo/dil/mapper/WmspOutboundScanResultMapper.xml

@@ -15,15 +15,17 @@
     <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />
     <result column="INSERT_UPDATE_REMARK" jdbcType="VARCHAR" property="insertUpdateRemark" />
     <result column="INBOUND_RESULT_ID" jdbcType="DECIMAL" property="inboundResultId" />
+    <result column="RESULT_MATERIAL_ID" jdbcType="DECIMAL" property="resultMaterialId" />
+<!--    RESULT_MATERIAL_ID,resultMaterialId-->
   </resultMap>
   <sql id="columns">
     RESULT_ID, OUTBOUND_RESULT_ID, LOAD_ID, RESULT_MATERIAL, RESULT_LOAD_TIME, OUTBOUND_MATERIAL_NUMBER, 
-    RESULT_CHECK, INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,INBOUND_RESULT_ID
+    RESULT_CHECK, INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,INBOUND_RESULT_ID,RESULT_MATERIAL_ID
   </sql>
   <sql id="columns_alias">
     t.RESULT_ID, t.OUTBOUND_RESULT_ID, t.LOAD_ID, t.RESULT_MATERIAL, t.RESULT_LOAD_TIME, 
     t.OUTBOUND_MATERIAL_NUMBER, t.RESULT_CHECK, t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, 
-    t.UPDATE_TIME, t.INSERT_UPDATE_REMARK ,t.INBOUND_RESULT_ID
+    t.UPDATE_TIME, t.INSERT_UPDATE_REMARK ,t.INBOUND_RESULT_ID,t.RESULT_MATERIAL_ID
   </sql>
   <sql id="select">
     SELECT <include refid="columns"/> FROM WMSP_OUTBOUND_SCAN_RESULT
@@ -72,6 +74,9 @@
       <if test="inboundResultId != null">
         and INBOUND_RESULT_ID = #{inboundResultId}
       </if>
+      <if test="resultMaterialId != null">
+        and RESULT_MATERIAL_ID = #{resultMaterialId}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
@@ -115,6 +120,9 @@
       <if test="inboundResultId != null and inboundResultId != ''">
         and INBOUND_RESULT_ID LIKE '%${inboundResultId}%'
       </if>
+      <if test="resultMaterialId != null and resultMaterialId != ''">
+        and RESULT_MATERIAL_ID LIKE '%${resultMaterialId}%'
+      </if>
     </where>
   </sql>
   <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
@@ -160,17 +168,20 @@
       <if test="inboundResultId != null and inboundResultId != ''">
         or INBOUND_RESULT_ID = #{inboundResultId}
       </if>
+    <if test="resultMaterialId != null and resultMaterialId != ''">
+      or RESULT_MATERIAL_ID = #{resultMaterialId}
+    </if>
   </delete>
   <insert id="insert" parameterType="com.steerinfo.dil.model.WmspOutboundScanResult">
     insert into WMSP_OUTBOUND_SCAN_RESULT (RESULT_ID, OUTBOUND_RESULT_ID, LOAD_ID, 
       RESULT_MATERIAL, RESULT_LOAD_TIME, OUTBOUND_MATERIAL_NUMBER, 
       RESULT_CHECK, INSERT_USERNAME, INSERT_TIME, 
-      UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,INBOUND_RESULT_ID
+      UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,INBOUND_RESULT_ID,RESULT_MATERIAL_ID
       )
     values (#{resultId,jdbcType=DECIMAL}, #{outboundResultId,jdbcType=DECIMAL}, #{loadId,jdbcType=DECIMAL}, 
-      #{resultMaterial,jdbcType=VARCHAR}, #{resultLoadTime,jdbcType=TIMESTAMP}, #{outboundMaterialNumber,jdbcType=DECIMAL}, 
+      #{resultMaterial,jdbcType=VARCHAR}, #{resultLoadTime,jdbcType=TIMESTAMP}, #{outboundMaterialNumber,jdbcType=DECIMAL},
       #{resultCheck,jdbcType=DECIMAL}, #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP}, 
-      #{updateUsername,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR},#{inboundResultId,jdbcType=DECIMAL}
+      #{updateUsername,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR},#{inboundResultId,jdbcType=DECIMAL},,#{resultMaterialId,jdbcType=DECIMAL}
       )
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.dil.model.WmspOutboundScanResult">
@@ -215,6 +226,9 @@
       <if test="inboundResultId != null">
         INBOUND_RESULT_ID,
       </if>
+      <if test="resultMaterialId != null">
+        RESULT_MATERIAL_ID,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="resultId != null">
@@ -256,6 +270,9 @@
       <if test="inboundResultId != null">
         #{inboundResultId,jdbcType=DECIMAL},
       </if>
+      <if test="resultMaterialId != null">
+        #{resultMaterialId,jdbcType=DECIMAL},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.WmspOutboundScanResult">
@@ -272,6 +289,7 @@
       UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
       INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
       INBOUND_RESULT_ID = #{inboundResultId,jdbcType=DECIMAL},
+      RESULT_MATERIAL_ID  = #{resultMaterialId,jdbcType=DECIMAL},
     where RESULT_ID = #{resultId,jdbcType=DECIMAL}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.WmspOutboundScanResult">
@@ -313,6 +331,9 @@
       <if test="inboundResultId != null">
         INBOUND_RESULT_ID = #{inboundResultId,jdbcType=DECIMAL},
       </if>
+      <if test="resultMaterialId != null">
+        RESULT_MATERIAL_ID = #{resultMaterialId,jdbcType=DECIMAL},
+      </if>
     </set>
     where RESULT_ID = #{resultId,jdbcType=DECIMAL}
   </update>
@@ -335,7 +356,7 @@
       RESULT_LOAD_TIME, OUTBOUND_MATERIAL_NUMBER, 
       RESULT_CHECK, INSERT_USERNAME, 
       INSERT_TIME, UPDATE_USERNAME, 
-      UPDATE_TIME, INSERT_UPDATE_REMARK,INBOUND_RESULT_ID
+      UPDATE_TIME, INSERT_UPDATE_REMARK,INBOUND_RESULT_ID,RESULT_MATERIAL_ID
       )
     ( <foreach collection="list" item="item" separator="union all"> 
    select  
@@ -343,8 +364,8 @@
       #{item.outboundResultId,jdbcType=DECIMAL}, #{item.loadId,jdbcType=DECIMAL}, #{item.resultMaterial,jdbcType=VARCHAR}, 
       #{item.resultLoadTime,jdbcType=TIMESTAMP}, #{item.outboundMaterialNumber,jdbcType=DECIMAL}, 
       #{item.resultCheck,jdbcType=DECIMAL}, #{item.insertUsername,jdbcType=VARCHAR}, 
-      #{item.insertTime,jdbcType=TIMESTAMP}, #{item.updateUsername,jdbcType=VARCHAR}, 
-      #{item.updateTime,jdbcType=TIMESTAMP}, #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.inboundResultId,jdbcType=DECIMAL}
+      #{item.insertTime,jdbcType=TIMESTAMP}, #{item.updateUsername,jdbcType=VARCHAR},
+      #{item.updateTime,jdbcType=TIMESTAMP}, #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.inboundResultId,jdbcType=DECIMAL}, #{item.resultMaterialId,jdbcType=DECIMAL}
        from dual  
    </foreach> )
   </insert>
@@ -403,6 +424,10 @@
       <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
         when #{item.resultId,jdbcType=DECIMAL} then #{item.inboundResultId,jdbcType=DECIMAL}
       </foreach>
+    ,RESULT_MATERIAL_ID=
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.resultMaterialId,jdbcType=DECIMAL}
+    </foreach>
      where RESULT_ID in 
      <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
     #{item.resultId,jdbcType=DECIMAL}
@@ -470,7 +495,10 @@
   </select>
   
   <select id="getResultStrs" resultType="java.lang.String">
-     select RESULT_MATERIAL "resultMaterial" from  WMSP_OUTBOUND_SCAN_RESULT where OUTBOUND_RESULT_ID=#{resultId}
+     select wosr.RESULT_MATERIAL "resultMaterial" from  WMSP_OUTBOUND_SCAN_RESULT wosr
+     left join WMSP_OUTBOUND_RESULT_MATERIAL worm
+     on wosr.RESULT_MATERIAL_ID=worm.RESULT_MATERIAL_ID
+     where wosr.OUTBOUND_RESULT_ID=#{resultId}  and worm.STATUS=1
   </select>