|
@@ -66,7 +66,8 @@ public class WmsInboundResultController extends BaseRESTfulController {
|
|
|
|
|
|
@Autowired
|
|
|
ICommonService commonService;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ WmsInboundScanResultServiceImpl wmsInboundScanResultService;
|
|
|
|
|
|
/**
|
|
|
* 展示入库实绩
|
|
@@ -128,14 +129,6 @@ public class WmsInboundResultController extends BaseRESTfulController {
|
|
|
@PostMapping("/insertInboundResult")
|
|
|
@Transactional
|
|
|
public RESTfulResult addInvoice(@RequestParam("userName") String userName,@RequestParam("groupId") BigDecimal groupId,@RequestParam("personnelWorkshopid") BigDecimal personnelWorkshopid, @RequestBody(required = false) List<Map<String, Object>> mapList) {
|
|
|
- //首先做的判断处理
|
|
|
- //由于钢材是分批次、一批四件的(有特殊情况不是一批四件)
|
|
|
- //所以需要设置他们批次不能跨越一个应该是相连的,如果批次跨过两个说明有一个多按了一次,或者是有了一个人少按了一次,所以需要少下发的和多下发的对齐。
|
|
|
- //使两个人批次相同
|
|
|
-
|
|
|
- //查询当前分组下次最新的一次下发、
|
|
|
- // 第一、判断库状态是否是下发中的
|
|
|
- // 第二、判断自己上一组是否完成,如果上一组已经完成则开始下一组、没有完成给一点提示
|
|
|
//查询当前组最新得一条入库实绩、判断是否是自己创建得、状态是否是带下发状态
|
|
|
Map<String,Object> conditionMap=wmsInboundResultServiceImpl.selectInboundResultByGroupId(groupId);
|
|
|
//如果最新的一条是自己的并且
|
|
@@ -145,13 +138,13 @@ public class WmsInboundResultController extends BaseRESTfulController {
|
|
|
if ((conditionMap!=null&&conditionMap.get("userName").toString().equals(userName)&&conditionMap.get("resultStatus").toString().equals("1"))){
|
|
|
return success("请勿重复提交");
|
|
|
}
|
|
|
+
|
|
|
//此条件成了说明第二个人开始提交了
|
|
|
if (conditionMap!=null&&!conditionMap.get("userName").toString().equals(userName)&&conditionMap.get("resultStatus").toString().equals("1")){
|
|
|
- //获得第一个人的批次
|
|
|
//将下面的订单都录入这个批次里面
|
|
|
for (int i=0;i<mapList.size();i++){
|
|
|
Map<String,Object> item=mapList.get(i);
|
|
|
- //二、获得同一批的第i个的网格 解释:目前还没有设计出来网格的结构 没有做默认为 第一库、第一月台、第一垛位、第一行、第一列 \推送信息给行车工、让他们抢单代码备注了
|
|
|
+ //获得同一批的第i个的网格 解释:目前还没有设计出来网格的结构 没有做默认为 第一库、第一月台、第一垛位、第一行、第一列 \推送信息给行车工、让他们抢单代码备注了
|
|
|
BigDecimal houseGrid = wmsInboundResultServiceImpl.getGrid(conditionMap.get("distributeId").toString(), i+1);
|
|
|
//如果差不多、说明上一个人少扫了一次
|
|
|
if (houseGrid==null){
|
|
@@ -159,9 +152,8 @@ public class WmsInboundResultController extends BaseRESTfulController {
|
|
|
//创建实时库存
|
|
|
wmspGridMaterialService.initInsertWmspGridMaterial(item,houseGrid);
|
|
|
}
|
|
|
- //遗留 批次、网格
|
|
|
- //三、创建一个入库作业实绩
|
|
|
- WmspInboundResult wmspInboundResult = wmsInboundResultServiceImpl.initAndWmspInboundResult(i+1,personnelWorkshopid,groupId,userName,new BigDecimal(conditionMap.get("distributeId").toString()),houseGrid,item);
|
|
|
+ //创建一个入库作业实绩
|
|
|
+ WmspInboundResult wmspInboundResult = wmsInboundResultServiceImpl.initAndWmspInboundResult(0,i+1,personnelWorkshopid,groupId,userName,new BigDecimal(conditionMap.get("distributeId").toString()),houseGrid,item);
|
|
|
//改变扫码实绩里面的状态
|
|
|
int status= wmsInboundScanResultServiceImpl.updateInboundScanStatus(new BigDecimal(item.get("resultId").toString()),wmspInboundResult.getInboundId());
|
|
|
//当都完成的时候就要去改变这一批的状态改为下发状态
|
|
@@ -169,7 +161,7 @@ public class WmsInboundResultController extends BaseRESTfulController {
|
|
|
int status2= wmsInboundResultServiceImpl.updateInboundStatus(new BigDecimal(conditionMap.get("distributeId").toString()));
|
|
|
}
|
|
|
}
|
|
|
- return success();
|
|
|
+ return success("下发成功");
|
|
|
//第n批第一次提交
|
|
|
}else{
|
|
|
//需要判断是否已经提交过了 通过resultId判断物质是否已经下发过了跳出、多次下发的结果
|
|
@@ -177,25 +169,47 @@ public class WmsInboundResultController extends BaseRESTfulController {
|
|
|
if(resultStatus==1){
|
|
|
return success("请勿重复下发");
|
|
|
}
|
|
|
- //第一、创建批次
|
|
|
+ //、创建批次
|
|
|
WmspInboundDistribute wmspInboundDistribute=wmspInboundDistributeService.initAndCreateInboundDistribute(personnelWorkshopid,groupId,userName,batch);
|
|
|
+ //判断物质是否是线材
|
|
|
+ BigDecimal count = wmsInboundScanResultService.selectMaterialTypeByMaterialId(new BigDecimal(mapList.get(0).get("materialId").toString()));
|
|
|
+ if (count!=null){
|
|
|
+ //将下面的订单都录入这个批次里面
|
|
|
+ for (int i=0;i<mapList.size();i++){
|
|
|
|
|
|
- //将下面的订单都录入这个批次里面
|
|
|
- for (int i=0;i<mapList.size();i++){
|
|
|
- Map<String,Object> item=mapList.get(i);
|
|
|
- //二、智能的设置好这批钢材的位置、网格图
|
|
|
- //二、查询一个默认的网格 解释:目前还没有设计出来网格的结构 没有做默认为 第一库、第一月台、第一垛位、第一行、第一列 \推送信息给行车工、让他们抢单代码备注了
|
|
|
- BigDecimal houseGrid = rmsPwarehouseGridService.selectGrid(mapList.size()-1, personnelWorkshopid);
|
|
|
- //遗留 批次、网格
|
|
|
- //三、创建一个入库作业实绩
|
|
|
- WmspInboundResult wmspInboundResult = wmsInboundResultServiceImpl.initAndWmspInboundResult(i+1,personnelWorkshopid,groupId,userName,wmspInboundDistribute.getDistributeId(),houseGrid,item);
|
|
|
- //改变扫码实绩里面的状态
|
|
|
- int status= wmsInboundScanResultServiceImpl.updateInboundScanStatus(new BigDecimal(item.get("resultId").toString()),wmspInboundResult.getInboundId());
|
|
|
+ Map<String,Object> item=mapList.get(i);
|
|
|
+ //获得一个默认的网格 解释:目前还没有设计出来网格的结构 没有做默认为 第一库、第一月台、第一垛位、第一行、第一列 \推送信息给行车工、让他们抢单代码备注了
|
|
|
+ BigDecimal houseGrid = rmsPwarehouseGridService.selectGrid(mapList.size()-1, personnelWorkshopid);
|
|
|
+ //创建一个入库作业实绩
|
|
|
+ WmspInboundResult wmspInboundResult = wmsInboundResultServiceImpl.initAndWmspInboundResult(0,i+1,personnelWorkshopid,groupId,userName,wmspInboundDistribute.getDistributeId(),houseGrid,item);
|
|
|
+ //改变扫码实绩里面的状态
|
|
|
+ int status= wmsInboundScanResultServiceImpl.updateInboundScanStatus(new BigDecimal(item.get("resultId").toString()),wmspInboundResult.getInboundId());
|
|
|
+ //创建实时库存
|
|
|
+ wmspGridMaterialService.initInsertWmspGridMaterial(item,houseGrid);
|
|
|
+
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //如果是线材直接结束
|
|
|
+ //将下面的订单都录入这个批次里面
|
|
|
+ for (int i=0;i<mapList.size();i++) {
|
|
|
+
|
|
|
+ Map<String, Object> item = mapList.get(i);
|
|
|
+ //获得一个默认的网格 解释:目前还没有设计出来网格的结构 没有做默认为 第一库、第一月台、第一垛位、第一行、第一列 \推送信息给行车工、让他们抢单代码备注了
|
|
|
+ BigDecimal houseGrid = rmsPwarehouseGridService.selectGrid(mapList.size() - 1, personnelWorkshopid);
|
|
|
+ //创建一个入库作业实绩
|
|
|
+ WmspInboundResult wmspInboundResult = wmsInboundResultServiceImpl.initAndWmspInboundResult(1, i + 1, personnelWorkshopid, new BigDecimal(0), userName, wmspInboundDistribute.getDistributeId(), houseGrid, item);
|
|
|
+ //改变扫码实绩里面的状态
|
|
|
+ int status = wmsInboundScanResultServiceImpl.updateInboundScanStatus(new BigDecimal(item.get("resultId").toString()), wmspInboundResult.getInboundId());
|
|
|
+ //创建实时库存
|
|
|
+ wmspGridMaterialService.initInsertWmspGridMaterial(item, houseGrid);
|
|
|
+ //当都完成的时候就要去改变这一批的状态改为下发状态
|
|
|
+ if(mapList.size()==i+1){
|
|
|
+ int status2= wmsInboundResultServiceImpl.updateInboundStatus(wmspInboundDistribute.getDistributeId());
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- //创建实时库存
|
|
|
- wmspGridMaterialService.initInsertWmspGridMaterial(item,houseGrid);
|
|
|
}
|
|
|
- return success(null);
|
|
|
+ return success("下发成功");
|
|
|
}
|
|
|
|
|
|
}
|