123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473 |
- package com.steerinfo.dil.service.impl;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.TypeReference;
- import com.steerinfo.dil.mapper.WmspInboundScanResultMapper;
- import com.steerinfo.dil.mapper.WmspInboundStackResultMapper;
- import com.steerinfo.dil.model.WmspInboundScanResult;
- import com.steerinfo.dil.model.WmspInboundStackResult;
- import com.steerinfo.dil.service.IRmsMaterialSteelService;
- import com.steerinfo.dil.service.IWmsInboundScanResultService;
- import com.steerinfo.dil.service.IWmspInboundGroupService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.math.BigDecimal;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
- /**
- * @author luobang
- * @create 2021-09-07 15:12
- */
- @Service
- public class WmsInboundScanResultServiceImpl implements IWmsInboundScanResultService {
- @Autowired
- private WmspInboundScanResultMapper wmspInboundScanResultMapper;
- @Autowired
- private WmspInboundStackResultMapper wmspInboundStackResultMapper;
- @Autowired
- private IWmspInboundGroupService wmspInboundGroupService;
- @Autowired
- private IRmsMaterialSteelService rmsMaterialSteelService;
- //判断是否重复扫码
- @Override
- public Integer checkScanTag(Map<String,Object>map,BigDecimal loadId){
- //获取扫描吊牌实绩
- String resultMaterial = (String) map.get("resultMaterial");
- //获取物资扫描实绩
- String subResultMaterial = resultMaterial.substring(0,resultMaterial.length() - 1);
- Map<String,Object> checkScanMap = new HashMap<>();
- checkScanMap.put("resultMaterial",subResultMaterial);
- checkScanMap.put("loadId",loadId);
- //根据扫描实绩查询出扫描实绩个数
- Integer j=(checkScanResult(checkScanMap)).size();
- if (j!=0)
- return 0;
- return 1;
- }
- /**
- * 1.新增吊钢工扫描吊牌实绩
- * @param wmspInboundScanResult
- * @return
- */
- @Override
- public Integer insertWmsInboundScanResult(WmspInboundScanResult wmspInboundScanResult) {
- return wmspInboundScanResultMapper.insertSelective(wmspInboundScanResult);
- }
- /**
- * 2.获取最大ID
- * @return
- */
- @Override
- public BigDecimal count() {
- return wmspInboundScanResultMapper.getCount();
- }
- /**
- * 3.获取吊钢工最大扫描数
- * @param
- * @return
- */
- @Override
- public int scanNumber(Map<String, Object> map) {
- if (wmspInboundScanResultMapper.getScanNumber(map)==null){
- return 0;
- }
- return wmspInboundScanResultMapper.getScanNumber(map).intValue();
- }
- /**
- * 4.更新扫描吊牌实绩
- * @param wmspInboundScanResult
- * @return
- */
- @Override
- public Integer updateWmsInboundScanResult(WmspInboundScanResult wmspInboundScanResult) {
- return wmspInboundScanResultMapper.updateByPrimaryKeySelective(wmspInboundScanResult);
- }
- /**
- * 更新异常值
- // * @param wmspInboundScanResult
- * @return
- */
- @Override
- public Integer updateInboundAbnormal(Map<String,Object> map) {
- return wmspInboundScanResultMapper.updateInboundAbnormal(map);
- }
- @Override
- public Integer updateWmsInboundScanById(Map<String, Object> map) {
- return wmspInboundScanResultMapper.updateInboundScanResult(map);
- }
- /**
- * 获取扫描吊牌实绩
- * @param map
- * @return
- */
- @Override
- public List<Map<String, Object>> getScanTagResult(Map<String, Object> map) {
- return wmspInboundScanResultMapper.selectScanTagResult(map);
- }
- /**
- * 获取正常入库
- * @param map
- * @return
- */
- @Override
- public List<Map<String, Object>> getIssuedScanTagResult(Map<String, Object> map) {
- return wmspInboundScanResultMapper.selectIssuedScanTagResult(map);
- }
- /**
- * 获取异常入库
- * @param map
- * @return
- */
- @Override
- public List<Map<String, Object>> getIssuedScanTagNoResult(Map<String, Object> map) {
- return wmspInboundScanResultMapper.selectIssuedScanTagNoResult(map);
- }
- /**
- * 判断是否重复插入
- * @param
- * @param
- * @return
- */
- @Override
- public List<Map<String, Object>> checkScanResult(Map<String,Object>map) {
- return wmspInboundScanResultMapper.checkScanResult(map);
- }
- /*
- 更新退库扫描实绩
- */
- @Override
- public Integer updateWmsReboundScanById(Map<String, Object> map5) {
- return wmspInboundScanResultMapper.updateReboundScanResult(map5);
- }
- /*
- 展示已下发退库实绩
- */
- @Override
- public List<Map<String, Object>> getIssuedScanResult(Map<String, Object> map) {
- return wmspInboundScanResultMapper.selectReIssuedScanResult(map);
- }
- /*
- 展示未下发退库实绩
- */
- @Override
- public List<Map<String, Object>> getReScanTagResult(Map<String, Object> map) {
- return wmspInboundScanResultMapper.selectReScanTagResult(map);
- }
- /*
- 展示已下发退库实绩
- */
- @Override
- public List<Map<String, Object>> getIssuedScanIvResult(Map<String, Object> map) {
- return wmspInboundScanResultMapper.selectIvIssuedScanResult(map);
- }
- /*
- 展示未下发退库实绩
- */
- @Override
- public List<Map<String, Object>> getIvScanTagResult(Map<String, Object> map) {
- return wmspInboundScanResultMapper.selectIvScanTagResult(map);
- }
- @Override
- public List<Map<String, Object>>getScanResult(BigDecimal loadId) {
- return wmspInboundScanResultMapper.getScanResult(loadId);
- }
- @Override
- public BigDecimal getLoadId(Map<String, Object> map) {
- return wmspInboundScanResultMapper.getLoadId(map);
- }
- /**
- * 得到另外一个扫描实绩ID
- * @param otherLoadMap
- * @return
- */
- @Override
- public List<Map<String,Object>> getOntherLoadId(Map<String, Object> otherLoadMap) {
- return wmspInboundScanResultMapper.getOtherScanResultId(otherLoadMap);
- }
- @Override
- public BigDecimal getOtherLoadId(Map<String, Object> map) {
- return wmspInboundScanResultMapper.getOtherLoadId(map);
- }
- @Override
- public Integer getOtherMaterialSteelId(Map<String, Object> map) {
- return wmspInboundScanResultMapper.getOtherMaterialSteelId(map);
- }
- @Override
- public List<Map<String, Object>> selectStacking(Map<String, Object> map) {
- return wmspInboundScanResultMapper.selectStackNo(map);
- }
- @Override
- public Integer updateStatus(Map<String, Object> map) {
- return wmspInboundScanResultMapper.updataStatus(map);
- }
- /**
- * 判断物资是否为线材
- * @param materialId
- * @return
- */
- @Override
- public BigDecimal selectMaterialTypeByMaterialId(BigDecimal materialId) {
- return wmspInboundScanResultMapper.selectMaterialTypeByMaterialId(materialId);
- }
- /**
- * 判断物质是否已经被扫
- * @param userName
- * @param resultMaterial
- * @return
- */
- @Override
- public int isExist(String userName, String resultMaterial) {
- return wmspInboundScanResultMapper.isExist(userName,resultMaterial);
- }
- /**
- * 查询扫描没有下发的物质
- * @param userName
- * @return
- */
- @Override
- public List<Map<String, Object>> noIssueScanResult(String userName) {
- return wmspInboundScanResultMapper.noIssueScanResult(userName);
- }
- @Override
- public Map<String, Object> createInboundScanResultByResultMaterial(Integer scanedCount, String userName,String resultMaterial) throws ParseException {
- //创建入库扫描实绩、并且给对象赋值
- WmspInboundScanResult wmspInboundScanResult=new WmspInboundScanResult();
- //设置主键自增,这里需要修改
- wmspInboundScanResult.setId(count());
- //获取班次次序的吊牌信息
- String[] result = resultMaterial.split("-");
- if(result.length == 10){
- String shiftOrder = result[9];
- wmspInboundScanResult.setShiftOrder(shiftOrder);
- }
- //分组
- //根据用户名和分组状态查询到分组信息
- BigDecimal groupId= wmspInboundGroupService.getGroupIdByUserName(userName);
- wmspInboundScanResult.setInboundGroupId(groupId);
- //吊钢工扫描吊牌结果
- wmspInboundScanResult.setResultMaterial(resultMaterial);
- //扫描吊牌信息
- wmspInboundScanResult.setResultLoadTime(new Date());
- //新增钢材物资ID
- Map<String,Object> materialSteel = rmsMaterialSteelService.insertRmsMaterialSteel2(resultMaterial);
- wmspInboundScanResult.setMaterialId(new BigDecimal(materialSteel.get("materialSteelId").toString()));
- //创建用户
- //insertUsername
- wmspInboundScanResult.setInboundAbnormalis(new BigDecimal(0));
- //设置入库物资件数,默认一件
- wmspInboundScanResult.setInboundMaterialNumber(new BigDecimal(1));
- // 状态:0:未下发;1:已下发
- wmspInboundScanResult.setResultStatus(new BigDecimal(0));
- //吊钢工已扫物资次数 ,目前已扫描为没有下发的物质
- //BigDecimal scanCount= wmspInboundScanResultMapper.getScanedNumber(userId);
- wmspInboundScanResult.setResultNumber(new BigDecimal(scanedCount));
- //逻辑删除:1:删除,0:未删除
- wmspInboundScanResult.setResultDeleted(new BigDecimal(0));
- //扫码用户
- wmspInboundScanResult.setInsertUsername(userName);
- //创建时间
- wmspInboundScanResult.setInsertTime(new Date());
- int status = wmspInboundScanResultMapper.insertSelective(wmspInboundScanResult);
- //判断是否创建成功
- if (status>0){
- materialSteel.putAll(JSON.parseObject(JSON.toJSONString(wmspInboundScanResult),new TypeReference<Map<String,Object>>(){}));
- return materialSteel;
- }
- return null;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public int createInboundScanResultByFind(List<Map<String, Object>> list, Map<String, Object> map) throws Exception {
- List<WmspInboundScanResult> results=new ArrayList<>();
- String userName=map.get("userName").toString();
- int i=0;
- for(Map<String,Object> temp:list){
- if(temp==null || temp.get("resultMaterial")==null){
- throw new Exception("查询结果存在空值,终止新增扫码实绩,并回滚");
- }
- //创建入库扫描实绩、并且给对象赋值
- WmspInboundScanResult wmspInboundScanResult=new WmspInboundScanResult();
- //设置自增主键
- wmspInboundScanResult.setId(wmspInboundScanResultMapper.getCount());
- //获取班次次序的吊牌信息
- String resultMaterial=temp.get("resultMaterial").toString();
- String[] result = resultMaterial.split("-");
- if(result.length == 10){
- String shiftOrder = result[9];
- wmspInboundScanResult.setShiftOrder(shiftOrder);
- }
- //分组
- //根据用户名和分组状态查询到分组信息
- BigDecimal groupId= wmspInboundGroupService.getGroupIdByUserName(userName);
- wmspInboundScanResult.setInboundGroupId(groupId);
- //吊钢工扫描吊牌结果
- wmspInboundScanResult.setResultMaterial(resultMaterial);
- //扫描吊牌信息
- wmspInboundScanResult.setResultLoadTime(new Date());
- //新增钢材物资ID
- Map<String,Object> materialSteel = rmsMaterialSteelService.insertRmsMaterialSteel2(resultMaterial);
- wmspInboundScanResult.setMaterialId(new BigDecimal(materialSteel.get("materialSteelId").toString()));
- //创建用户
- //insertUsername
- wmspInboundScanResult.setInboundAbnormalis(new BigDecimal(0));
- //设置入库物资件数,默认一件
- wmspInboundScanResult.setInboundMaterialNumber(new BigDecimal(1));
- // 状态:0:未下发;1:已下发
- wmspInboundScanResult.setResultStatus(new BigDecimal(0));
- //吊钢工已扫物资次数 ,目前已扫描为没有下发的物资
- wmspInboundScanResult.setResultNumber(new BigDecimal(list.size()));
- //逻辑删除:1:删除,0:未删除
- wmspInboundScanResult.setResultDeleted(new BigDecimal(0));
- //扫码用户
- wmspInboundScanResult.setInsertUsername(userName);
- //创建时间
- wmspInboundScanResult.setInsertTime(new Date());
- //插入
- i+=wmspInboundScanResultMapper.insertSelective(wmspInboundScanResult);
- }
- return i;
- }
- @Override
- public List<Map<String, Object>> noIssueScanResultList(String userName) {
- return wmspInboundScanResultMapper.noIssueScanResultList(userName);
- }
- @Override
- public int changeInboundIscomplete(BigDecimal stackResultId) {
- // 根据stackResultId找到对应的成品并修改其状态
- WmspInboundStackResult wmspInboundStackResult =new WmspInboundStackResult();
- wmspInboundStackResult.setResultId(stackResultId);
- wmspInboundStackResult.setStackingStatus(new BigDecimal(1));
- return wmspInboundStackResultMapper.updateByPrimaryKeySelective(wmspInboundStackResult);
- }
- public int updateInboundScanStatus(BigDecimal resultId,BigDecimal inboundId) {
- return wmspInboundScanResultMapper.updataStatusByResultId(resultId,inboundId);
- }
- @Override
- public Integer getResultStatusByResultId(String resultId) {
- return wmspInboundScanResultMapper.getResultStatusByResultId(resultId);
- }
- @Override
- public int isExist2(String userName, String resultMaterial) {
- return wmspInboundScanResultMapper.isExist2(userName,resultMaterial);
- }
- @Override
- public Map<String, Object> createInboundScanResultByResultMaterial2(int scanedCount, String userName, String resultMaterial) throws ParseException {
- //创建入库扫描实绩、并且给对象赋值
- WmspInboundScanResult wmspInboundScanResult=new WmspInboundScanResult();
- //设置主键自增,这里需要修改
- wmspInboundScanResult.setId(count());
- //分组 只需要扫一次没有分组信息
- //根据用户名和分组状态查询到分组信息
- // BigDecimal groupId= wmspInboundGroupService.getGroupIdByUserName(userName);
- // wmspInboundScanResult.setInboundGroupId(groupId);
- //吊钢工扫描吊牌结果
- wmspInboundScanResult.setResultMaterial(resultMaterial);
- //扫描吊牌信息
- wmspInboundScanResult.setResultLoadTime(new Date());
- //新增钢材物资ID
- Map<String,Object> materialSteel = rmsMaterialSteelService.insertRmsMaterialSteel2(resultMaterial);
- wmspInboundScanResult.setMaterialId(new BigDecimal(materialSteel.get("materialSteelId").toString()));
- //创建用户
- //insertUsername
- wmspInboundScanResult.setInboundAbnormalis(new BigDecimal(0));
- //设置入库物资件数,默认一件
- wmspInboundScanResult.setInboundMaterialNumber(new BigDecimal(1));
- // 状态:0:未下发;1:已下发
- wmspInboundScanResult.setResultStatus(new BigDecimal(0));
- //吊钢工已扫物资次数 ,目前已扫描为没有下发的物质
- //BigDecimal scanCount= wmspInboundScanResultMapper.getScanedNumber(userId);
- wmspInboundScanResult.setResultNumber(new BigDecimal(scanedCount));
- //逻辑删除:1:删除,0:未删除
- wmspInboundScanResult.setResultDeleted(new BigDecimal(0));
- //扫码用户
- wmspInboundScanResult.setInsertUsername(userName);
- //创建时间
- wmspInboundScanResult.setInsertTime(new Date());
- int status = wmspInboundScanResultMapper.insertSelective(wmspInboundScanResult);
- //判断是否创建成功
- if (status>0){
- materialSteel.putAll(JSON.parseObject(JSON.toJSONString(wmspInboundScanResult),new TypeReference<Map<String,Object>>(){}));
- return materialSteel;
- }
- return null;
- }
- @Override
- public int isExistInboundScanResult(String resultMaterial) {
- int isExist = wmspInboundScanResultMapper.isExistInboundScanResult(resultMaterial);
- return isExist;
- }
- @Override
- public List<Map<String, Object>> noIssueScanResultList2(String userName) {
- return wmspInboundScanResultMapper.noIssueScanResultList2(userName);
- }
- @Override
- public Map<String, Object> getOrderTypeByNum(String orderNumber) {
- return wmspInboundScanResultMapper.getOrderTypeByNum(orderNumber);
- }
- @Override
- public Map<String, Object> getOrderTypeByInboundId(String resultId) {
- return wmspInboundScanResultMapper.getOrderTypeByInboundId(resultId);
- }
- @Override
- public List<Map<String, Object>> findInboundScanResult(String orderNumber) {
- return wmspInboundScanResultMapper.findInboundScanResult(orderNumber);
- }
- @Override
- public Integer isExistLoad(String orderNumber) {
- return wmspInboundScanResultMapper.isExistLoad(orderNumber);
- }
- }
|