Browse Source

修改计较

luobang 2 years ago
parent
commit
a093e2cede

+ 9 - 0
src/main/java/com/steerinfo/dil/controller/WmspOutboundResultController.java

@@ -191,6 +191,7 @@ public class WmspOutboundResultController extends BaseRESTfulController {
         String subResultMaterial = map.get("resultMaterial").toString().substring(0,map.get("resultMaterial").toString().length() - 1);
         //获取出库单号
         String materialOnlyCode=subResultMaterial.split("-")[7];
+        String materialCode = subResultMaterial.split("-")[8];
         BigDecimal resultId = new BigDecimal(map.get("resultId").toString());
         //物资唯一编码
         //判断物质是否已经被扫描
@@ -218,6 +219,14 @@ public class WmspOutboundResultController extends BaseRESTfulController {
             //物质类型错误
             return failed(-4);
         }
+        //判断该出库实绩下未出库的是否有扫描实绩
+        if(wmspOutboundScanResultService.getScanCountByResultId(resultId) > 0 ){
+            //如果未出库物资有扫描实绩,则去判断当前钢材物资的编码是否与库中有扫描实绩的物资是否相同,如果不同,则为0,相同则大于0,则返回一个状态值提醒客户
+            if(wmspOutboundScanResultService.getScanCountByResultIdCode(resultId,materialCode) == 0 ){
+                return failed(-41);
+            }
+
+        }
         Integer materialNumber= Integer.valueOf(materialMap.get("materailNumber").toString());
         //获得已经扫描的物质数量
         int scanCount = wmspOutboundScanResultService.getScanCount(materialOnlyCode,resultId);

+ 4 - 0
src/main/java/com/steerinfo/dil/mapper/WmspOutboundScanResultMapper.java

@@ -5,6 +5,7 @@ import com.steerinfo.dil.vo.OutBoundMaterialDetailedInfo;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+import sun.plugin2.main.server.ResultID;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -23,4 +24,7 @@ public interface WmspOutboundScanResultMapper extends IBaseMapper<WmspOutboundSc
     //通过物资唯一编码查询钢材物资唯一id
     Map<String, Object> getMaterialSteelId(String materialOnlyCode);
 
+    int getScanCountByResultId(@Param("resultId") BigDecimal resultId);
+
+    int getScanCountByResultIdCode(@Param("resultId") BigDecimal resultId, @Param("materialCode") String materialCode);
 }

+ 4 - 0
src/main/java/com/steerinfo/dil/service/IWmspOutboundScanResultService.java

@@ -35,4 +35,8 @@ public interface IWmspOutboundScanResultService {
     int getScanCount(String s, BigDecimal resultId);
 
     int deleteById(BigDecimal resultId);
+
+    int getScanCountByResultId(BigDecimal resultId);
+
+    int getScanCountByResultIdCode(BigDecimal resultId,String materialCode);
 }

+ 10 - 0
src/main/java/com/steerinfo/dil/service/impl/WmspOutboundScanResultServiceImpl.java

@@ -84,4 +84,14 @@ public class WmspOutboundScanResultServiceImpl implements IWmspOutboundScanResul
     public int deleteById(BigDecimal resultId) {
         return wmspOutboundScanResultMapper.deleteByPrimaryKey(resultId);
     }
+
+    @Override
+    public int getScanCountByResultId(BigDecimal resultId) {
+        return wmspOutboundScanResultMapper.getScanCountByResultId(resultId);
+    }
+
+    @Override
+    public int getScanCountByResultIdCode(BigDecimal resultId,String materialCode) {
+        return wmspOutboundScanResultMapper.getScanCountByResultIdCode(resultId,materialCode);
+    }
 }

+ 20 - 0
src/main/resources/com/steerinfo/dil/mapper/WmspOutboundScanResultMapper.xml

@@ -513,4 +513,24 @@
     ON gcwz.MATERIAL_STEEL_ID = wgm.MATERIAL_ID
     WHERE gcwz.MATERIAL_ONLY_CODE = #{materialOnlyCode}
   </select>
+    <select id="getScanCountByResultId" resultType="java.lang.Integer" parameterType="decimal">
+      SELECT count(wosr.RESULT_ID)  FROM WMSP_OUTBOUND_SCAN_RESULT WOSR
+      LEFT JOIN WMSP_OUTBOUND_RESULT_MATERIAL WORM
+      ON WORM.RESULT_MATERIAL_ID = WOSR.RESULT_MATERIAL_ID
+      where
+      WORM.STATUS = 1
+      AND
+    WOSR.OUTBOUND_RESULT_ID = #{resultId}
+    </select>
+  <select id="getScanCountByResultIdCode" resultType="java.lang.Integer">
+    SELECT count(wosr.RESULT_ID)  FROM WMSP_OUTBOUND_SCAN_RESULT WOSR
+    LEFT JOIN WMSP_OUTBOUND_RESULT_MATERIAL WORM
+    ON WORM.RESULT_MATERIAL_ID = WOSR.RESULT_MATERIAL_ID
+    where
+      WOSR.RESULT_MATERIAL LIKE  concat(concat('%',#{materialCode}),'%')
+      AND
+      WORM.STATUS = 1
+      AND
+      WOSR.OUTBOUND_RESULT_ID = #{resultId}
+  </select>
 </mapper>