diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java index 954f26c6..443e0b62 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java @@ -7,7 +7,6 @@ import com.foreverwin.mesnac.anomaly.model.AbnormalBill; import com.foreverwin.mesnac.anomaly.model.AbnormalBillDispose; import com.foreverwin.mesnac.anomaly.service.AbnormalBillService; import com.foreverwin.mesnac.anomaly.service.FileUploadedService; -import com.foreverwin.mesnac.anomaly.service.ProductionScrap; import com.foreverwin.mesnac.common.dto.SfcDispatchDto; import com.foreverwin.mesnac.common.service.SfcDispatchCommonService; import com.foreverwin.mesnac.meapi.service.NcCodeService; @@ -39,8 +38,7 @@ public class AbnormalBillController { @Autowired private FileUploadedService fileUploadedService; - @Autowired - private ProductionScrap productionScrap; + @Autowired private NcCodeService ncCodeService; @@ -342,16 +340,6 @@ public class AbnormalBillController { return R.ok(abnormalBillService.anomalyReveseRepair(abnormalBill,abnormalBillDispose)); } - /** - * 生产报废检索功能 - * @param site - * @param sfc - * @return - */ - @GetMapping("/getScrapDtoBysfc") - public R getScrapDtoBysfc(String site,String sfc){ - return R.ok(productionScrap.getScrapDtoBysfc(site,sfc)); - } @GetMapping("/findNcCodeDescriptionByNcCode") diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalMessageController.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalMessageController.java deleted file mode 100644 index 43057883..00000000 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalMessageController.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.foreverwin.mesnac.anomaly.controller; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.foreverwin.mesnac.anomaly.model.AbnormalMessage; -import com.foreverwin.mesnac.anomaly.service.AbnormalMessageService; -import com.foreverwin.modular.core.util.FrontPage; -import com.foreverwin.modular.core.util.R; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * - * @author 赵嘉伟 - * @since 2021-07-22 - */ -@RestController -@RequestMapping("/Z-ABNORMAL-MESSAGE") -public class AbnormalMessageController { - - @Autowired - public AbnormalMessageService abnormalMessageService; - - /** - * 根据id查询 - * - * @param id 主键 - * @return - */ - @ResponseBody - @GetMapping("/{id:.+}") - public R getAbnormalMessageById(@PathVariable String id) { - return R.ok( abnormalMessageService.getById(id)); - } - - /** - * 查询所有数据 - * - * @return - */ - @ResponseBody - @GetMapping("") - public R getAbnormalMessageList(AbnormalMessage abnormalMessage){ - List result; - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.setEntity(abnormalMessage); - result = abnormalMessageService.list(queryWrapper); - return R.ok(result); - } - - /** - * 分页查询数据 - * - * @param frontPage 分页信息 - * @return - */ - @ResponseBody - @GetMapping("/page") - public R page(FrontPage frontPage, AbnormalMessage abnormalMessage){ - IPage result; - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.setEntity(abnormalMessage); - if (frontPage.getGlobalQuery() != null && !"".equals(frontPage.getGlobalQuery().trim())) { - //TODO modify global query - queryWrapper.lambda().and(wrapper -> wrapper - .like(AbnormalMessage::getHandle, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getSite, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getAbnormalBillBo, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getType, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getMessageType, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getSendUserGroup, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getSendUser, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getContent, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getUpUserGroup, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getUpUser, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getUpMessageType, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getAbnormalNode, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getStatus, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getCreatedUser, frontPage.getGlobalQuery()) - .or().like(AbnormalMessage::getModifiedUser, frontPage.getGlobalQuery()) - ); - } - result = abnormalMessageService.page(frontPage.getPagePlus(), queryWrapper); - return R.ok(result); - } - - /** - * 新增 - * @param abnormalMessage 传递的实体 - * @return null 失败 实体成功 - */ - @PostMapping - public R save(@RequestBody AbnormalMessage abnormalMessage) { - return R.ok(abnormalMessageService.save(abnormalMessage)); - } - - /** - * 修改 - * @param abnormalMessage 传递的实体 - * @return null 失败 实体成功 - */ - @PutMapping - public R updateById(@RequestBody AbnormalMessage abnormalMessage) { - return R.ok(abnormalMessageService.updateById(abnormalMessage)); - } - - /** - * 根据id删除对象 - * @param id 实体ID - * @return 0 失败 1 成功 - */ - @ResponseBody - @RequestMapping(method = RequestMethod.DELETE, value = "/{id:.+}") - public R removeById(@PathVariable("id") String id){ - return R.ok(abnormalMessageService.removeById(id)); - } - - /** - * 批量删除对象 - * @param ids 实体集合ID - * @return 0 失败 1 成功 - */ - @ResponseBody - @RequestMapping(method = RequestMethod.POST, value = "/delete-batch") - public R removeByIds(List ids){ - return R.ok(abnormalMessageService.removeByIds(ids)); - } -} \ No newline at end of file diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java index 8a4f1c9e..3919dda4 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java @@ -2,8 +2,8 @@ package com.foreverwin.mesnac.anomaly.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.foreverwin.mesnac.anomaly.dto.AbnormalBillDto; -import com.foreverwin.mesnac.anomaly.dto.ScrapDto; import com.foreverwin.mesnac.anomaly.model.AbnormalBill; +import com.foreverwin.mesnac.common.dto.ScrapDto; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -34,5 +34,5 @@ public interface AbnormalBillMapper extends BaseMapper { Integer findAbnormalMethodBySFC(@Param("site")String site,@Param("sfc")String sfc); - List findScrapDtoBySfc(@Param("site")String site,@Param("sfc")String sfc); + List findScrapDtoBySfc(@Param("site")String site, @Param("sfc")String sfc); } \ No newline at end of file diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalMessageMapper.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalMessageMapper.java deleted file mode 100644 index 0d14bd7d..00000000 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalMessageMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.foreverwin.mesnac.anomaly.mapper; - -import com.foreverwin.mesnac.anomaly.model.AbnormalMessage; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.springframework.stereotype.Repository; - -/** - *

- * Mapper 接口 - *

- * - * @author 赵嘉伟 - * @since 2021-07-22 - */ -@Repository -public interface AbnormalMessageMapper extends BaseMapper { - -} \ No newline at end of file diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AbnormalMessageService.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AbnormalMessageService.java deleted file mode 100644 index 275e7e28..00000000 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AbnormalMessageService.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.foreverwin.mesnac.anomaly.service; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.foreverwin.mesnac.anomaly.model.AbnormalMessage; -import com.baomidou.mybatisplus.extension.service.IService; -import com.foreverwin.modular.core.util.FrontPage; - -import java.util.List; - -/** - *

- * 服务类 - *

- * - * @author 赵嘉伟 - * @since 2021-07-22 - */ -public interface AbnormalMessageService extends IService { - - /** - * 分页查询 - * @param frontPage - * @return - */ - IPage selectPage(FrontPage frontPage, AbnormalMessage abnormalMessage); - - List selectList(AbnormalMessage abnormalMessage); -} \ No newline at end of file diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ProductionScrap.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ProductionScrap.java index 3bb48060..aa7e49e7 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ProductionScrap.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ProductionScrap.java @@ -1,24 +1,10 @@ package com.foreverwin.mesnac.anomaly.service; -import com.foreverwin.mesnac.anomaly.dto.ScrapDto; - -import java.util.List; - /** * @Description TODO * @Author zhaojiawei * @Since 2021-07-28 */ public interface ProductionScrap { - /** - * 判断产品条码在质量异常中是否为报废 - * @param sfc - * @return - */ - boolean jgProductionIsScrap(String site,String sfc); - /** - * 检索 - */ - List getScrapDtoBysfc(String site,String sfc); } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java index 56d6b14f..7ec9bd4e 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java @@ -8,20 +8,24 @@ import com.foreverwin.mesnac.anomaly.dto.AbnormalBillDisposeDto; import com.foreverwin.mesnac.anomaly.dto.AbnormalBillDto; import com.foreverwin.mesnac.anomaly.mapper.AbnormalBillDisposeMapper; import com.foreverwin.mesnac.anomaly.mapper.AbnormalBillMapper; -import com.foreverwin.mesnac.anomaly.mapper.AbnormalMessageMapper; import com.foreverwin.mesnac.anomaly.model.*; import com.foreverwin.mesnac.anomaly.service.*; -import com.foreverwin.mesnac.anomaly.util.ActiveMQUtil; import com.foreverwin.mesnac.common.constant.Constants; +import com.foreverwin.mesnac.common.dto.ScrapDto; import com.foreverwin.mesnac.common.enums.HandleEnum; import com.foreverwin.mesnac.common.helper.NextNumberHelper; +import com.foreverwin.mesnac.common.mapper.MessageMapper; +import com.foreverwin.mesnac.common.model.Message; import com.foreverwin.mesnac.common.service.AnomalyService; +import com.foreverwin.mesnac.common.service.MessageService; +import com.foreverwin.mesnac.common.util.ActiveMQUtil; import com.foreverwin.mesnac.common.util.StringUtil; import com.foreverwin.mesnac.meapi.dto.ShopOrderDto; import com.foreverwin.mesnac.meapi.mapper.*; import com.foreverwin.mesnac.meapi.model.*; import com.foreverwin.mesnac.meapi.service.*; import com.foreverwin.mesnac.meapi.util.StringUtils; +import com.foreverwin.mesnac.production.mapper.SfcScrapMapper; import com.foreverwin.mesnac.quality.service.SelfReportService; import com.foreverwin.modular.core.exception.BaseException; import com.foreverwin.modular.core.exception.BusinessException; @@ -127,14 +131,17 @@ public class AbnormalBillServiceImpl extends ServiceImpl selectPage(FrontPage frontPage, AbnormalBill abnormalBill) { @@ -290,7 +297,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl nwaUsers = nwaUserService.selectList(nwaUser); - if(nwaUsers != null){ + if(nwaUsers != null && nwaUsers.size() > 0){ hashMap.put("currentUser",nwaUsers.get(0).getFullName()); } //初始化异常单号 @@ -823,14 +830,14 @@ public class AbnormalBillServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); - AbnormalMessage abnormalMessage1 = new AbnormalMessage(); + QueryWrapper wrapper = new QueryWrapper<>(); + Message abnormalMessage1 = new Message(); abnormalMessage1.setSite(site); - abnormalMessage1.setAbnormalBillBo(abnormalBill.getHandle()); - abnormalMessage1.setAbnormalNode(Constants.ABNORMAL_MESSAGE_REPORT); + abnormalMessage1.setObjectBo(abnormalBill.getHandle()); + abnormalMessage1.setNode(Constants.ABNORMAL_MESSAGE_REPORT); wrapper.setEntity(abnormalMessage1); - AbnormalMessage _abnormalMessage = abnormalMessageMapper.selectOne(wrapper); + Message _abnormalMessage = messageMapper.selectOne(wrapper); abnormalMessage.setUpUserGroup(_abnormalMessage.getUpUserGroup()); abnormalMessage.setUpMessageType(_abnormalMessage.getUpMessageType()); abnormalMessage.setGrade(_abnormalMessage.getGrade()); abnormalMessage.setUpDateTime(_abnormalMessage.getUpDateTime()); - abnormalMessage.setAbnormalNode(Constants.ABNORMAL_MESSAGE_RESPONSE); + abnormalMessage.setNode(Constants.ABNORMAL_MESSAGE_RESPONSE); break; case Constants.CORRECTION_CONFIRM://纠纷确认 abnormalMessage.setSendUserGroup(abnormalBillDispose.getDutySendUserGroup()); - abnormalMessage.setAbnormalNode(Constants.ABNORMAL_MESSAGE_CORRECTION_CONFIRM); + abnormalMessage.setNode(Constants.ABNORMAL_MESSAGE_CORRECTION_CONFIRM); break; case Constants.PROGRAM_CONFIRM://方案确认 abnormalMessage.setSendUser(abnormalBillDispose.getResolveSendUser()); - abnormalMessage.setAbnormalNode(Constants.ABNORMAL_MESSAGE_PROGRAM_CONFIRM); + abnormalMessage.setNode(Constants.ABNORMAL_MESSAGE_PROGRAM_CONFIRM); break; case Constants.CANCEL://取消 abnormalMessage.setSendUserGroup(abnormalBill.getCancelSendUserGroup()); - abnormalMessage.setAbnormalNode(Constants.ABNORMAL_MESSAGE_CANCEL); + abnormalMessage.setNode(Constants.ABNORMAL_MESSAGE_CANCEL); //异常取消的时候要关闭当前异常单下所有的异常信息 - UpdateWrapper messageTypeUpdateWrapper = new UpdateWrapper<>(); + UpdateWrapper messageTypeUpdateWrapper = new UpdateWrapper<>(); // messageTypeUpdateWrapper.eq("SITE",site); // messageTypeUpdateWrapper.eq("ABNORMAL_BILL_BO",abnormalMessage.getAbnormalBillBo()); - AbnormalMessage abnormalMessage2 = new AbnormalMessage(); + Message abnormalMessage2 = new Message(); // abnormalMessage2.setAbnormalBillBo(abnormalMessage.getAbnormalBillBo()); abnormalMessage2.setStatus("Y"); messageTypeUpdateWrapper.eq("STATUS","N"); - messageTypeUpdateWrapper.eq("ABNORMAL_BILL_BO",abnormalMessage.getAbnormalBillBo()); - abnormalMessageService.update(abnormalMessage2,messageTypeUpdateWrapper); + messageTypeUpdateWrapper.eq("OBJECT_BO",abnormalMessage.getObjectBo()); + messageService.update(abnormalMessage2,messageTypeUpdateWrapper); break; case Constants.SHUT_DOWN: break; @@ -911,7 +918,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl nwaUsers = nwaUserService.checkUserGroup(site,abnormalMessage.getSendUserGroup()); StringBuilder sendUsers = new StringBuilder(); for (int i = 0; i < nwaUsers.size(); i++) { @@ -955,7 +962,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl getScrapDtoBysfc(String site, String sfc) { + //判断该产品条码是否已经报废 + if(sfcScrapMapper.selectById(HandleEnum.SFC_SCRAP.getHandle(site,sfc)) != null){ + throw new BaseException("该产品条码已经报废"); + } + if(this.jgProductionIsScrap(site,sfc)){ + throw new BaseException("该产品条码的异常方案不是报废"); + } + return abnormalBillMapper.findScrapDtoBySfc(site, sfc); + } + + + + } \ No newline at end of file diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalMessageServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalMessageServiceImpl.java deleted file mode 100644 index c0bc6d0b..00000000 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalMessageServiceImpl.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.foreverwin.mesnac.anomaly.service.impl; - -import com.foreverwin.modular.core.util.FrontPage; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.foreverwin.mesnac.anomaly.model.AbnormalMessage; -import com.foreverwin.mesnac.anomaly.mapper.AbnormalMessageMapper; -import com.foreverwin.mesnac.anomaly.service.AbnormalMessageService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -/** - *

- * 服务实现类 - *

- * - * @author 赵嘉伟 - * @since 2021-07-22 - */ -@Service -@Transactional(rollbackFor = Exception.class) -public class AbnormalMessageServiceImpl extends ServiceImpl implements AbnormalMessageService { - - - @Autowired - private AbnormalMessageMapper abnormalMessageMapper; - - @Override - public IPage selectPage(FrontPage frontPage, AbnormalMessage abnormalMessage) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.setEntity(abnormalMessage); - return super.page(frontPage.getPagePlus(), queryWrapper); - } - - @Override - public List selectList(AbnormalMessage abnormalMessage) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.setEntity(abnormalMessage); - return super.list(queryWrapper); - } - - -} \ No newline at end of file diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AnomalyJobServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AnomalyJobServiceImpl.java index aa2a1702..38e29b7d 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AnomalyJobServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AnomalyJobServiceImpl.java @@ -2,13 +2,13 @@ package com.foreverwin.mesnac.anomaly.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.foreverwin.mesnac.anomaly.mapper.AbnormalBillMapper; -import com.foreverwin.mesnac.anomaly.mapper.AbnormalMessageMapper; import com.foreverwin.mesnac.anomaly.model.AbnormalBill; -import com.foreverwin.mesnac.anomaly.model.AbnormalMessage; import com.foreverwin.mesnac.anomaly.service.AbnormalBillService; -import com.foreverwin.mesnac.anomaly.service.AbnormalMessageService; import com.foreverwin.mesnac.anomaly.service.AnomalyJobService; -import com.foreverwin.mesnac.anomaly.util.ActiveMQUtil; +import com.foreverwin.mesnac.common.mapper.MessageMapper; +import com.foreverwin.mesnac.common.model.Message; +import com.foreverwin.mesnac.common.service.MessageService; +import com.foreverwin.mesnac.common.util.ActiveMQUtil; import com.foreverwin.mesnac.common.util.StringUtil; import com.foreverwin.mesnac.meapi.mapper.UserGroupMapper; import com.foreverwin.mesnac.meapi.model.NwaUser; @@ -32,10 +32,10 @@ import java.util.UUID; public class AnomalyJobServiceImpl implements AnomalyJobService { @Autowired - private AbnormalMessageService abnormalMessageService; + private MessageService messageService; @Autowired - private AbnormalMessageMapper abnormalMessageMapper; + private MessageMapper messageMapper; @Autowired private AbnormalBillMapper abnormalBillMapper; @@ -58,19 +58,19 @@ public class AnomalyJobServiceImpl implements AnomalyJobService { LocalDateTime now = LocalDateTime.now(); String user = CommonMethods.getUser(); //找到状态为N,并且升级时间大于当前时间 - QueryWrapper abnormalMessageQueryWrapper = new QueryWrapper<>(); + QueryWrapper abnormalMessageQueryWrapper = new QueryWrapper<>(); abnormalMessageQueryWrapper.eq("STATUS","N"); abnormalMessageQueryWrapper.lt("UP_DATE_TIME",now); - List abnormalMessages = abnormalMessageMapper.selectList(abnormalMessageQueryWrapper); - for(AbnormalMessage _abnormalMessage : abnormalMessages){ + List abnormalMessages = messageMapper.selectList(abnormalMessageQueryWrapper); + for(Message _abnormalMessage : abnormalMessages){ String uuid = UUID.randomUUID().toString(); - AbnormalMessage abnormalMessage = new AbnormalMessage(); + Message abnormalMessage = new Message(); //设置abnormalMessage的handle abnormalMessage.setHandle(uuid); //设置abnormalMessage的site abnormalMessage.setSite(site); //设置abnormalMessage的异常单Bo - abnormalMessage.setAbnormalBillBo(_abnormalMessage.getAbnormalBillBo()); + abnormalMessage.setObjectBo(_abnormalMessage.getObjectBo()); //设置abnormalMessage的type abnormalMessage.setType(_abnormalMessage.getType()); //设置abnormalMessage的message_type @@ -89,7 +89,7 @@ public class AnomalyJobServiceImpl implements AnomalyJobService { abnormalMessage.setUpUser(null); } - AbnormalBill abnormalBill = abnormalBillMapper.selectById(abnormalMessage.getAbnormalBillBo()); + AbnormalBill abnormalBill = abnormalBillMapper.selectById(abnormalMessage.getObjectBo()); String message = abnormalBillService.formatMessage(abnormalBill,abnormalMessage.getMessageType(),site); @@ -101,7 +101,7 @@ public class AnomalyJobServiceImpl implements AnomalyJobService { abnormalMessage.setGrade(_abnormalMessage.getGrade() + 1); abnormalMessage.setResponseDateTime(now); - abnormalMessage.setAbnormalNode(_abnormalMessage.getAbnormalNode()); + abnormalMessage.setNode(_abnormalMessage.getNode()); abnormalMessage.setStatus("Y"); _abnormalMessage.setStatus("Y"); @@ -128,8 +128,8 @@ public class AnomalyJobServiceImpl implements AnomalyJobService { } activeMQUtil.wechatSendMessage(sendUsers.toString(),abnormalMessage.getContent()); // } - abnormalMessageService.saveOrUpdate(abnormalMessage); - abnormalMessageService.saveOrUpdate(_abnormalMessage); + messageService.saveOrUpdate(abnormalMessage); + messageService.saveOrUpdate(_abnormalMessage); } } } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ProductionScrapImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ProductionScrapImpl.java index 0eb750c5..3c258484 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ProductionScrapImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ProductionScrapImpl.java @@ -1,16 +1,9 @@ package com.foreverwin.mesnac.anomaly.service.impl; -import com.foreverwin.mesnac.anomaly.dto.ScrapDto; -import com.foreverwin.mesnac.anomaly.mapper.AbnormalBillMapper; -import com.foreverwin.mesnac.anomaly.service.AbnormalBillService; import com.foreverwin.mesnac.anomaly.service.ProductionScrap; -import com.foreverwin.modular.core.exception.BaseException; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; - /** * @Description TODO * @Author zhaojiawei @@ -20,24 +13,4 @@ import java.util.List; @Transactional(rollbackFor = Exception.class) public class ProductionScrapImpl implements ProductionScrap { - @Autowired - private AbnormalBillService abnormalBillService; - - @Autowired - private AbnormalBillMapper abnormalBillMapper; - - @Override - public boolean jgProductionIsScrap(String site,String sfc) { - //查询该sfc在质量异常异常方案是否是报废,如果是,则大于1 - Integer num = abnormalBillMapper.findAbnormalMethodBySFC(site, sfc); - return num <= 0; - } - - @Override - public List getScrapDtoBysfc(String site,String sfc) { - if(this.jgProductionIsScrap(site,sfc)){ - throw new BaseException("该产品条码的异常方案不是报废"); - } - return abnormalBillMapper.findScrapDtoBySfc(site, sfc); - } } diff --git a/anomaly/src/main/resources/mapper/AbnormalBillDisposeMapper.xml b/anomaly/src/main/resources/mapper/AbnormalBillDisposeMapper.xml index 46f6bd5c..eee42d28 100644 --- a/anomaly/src/main/resources/mapper/AbnormalBillDisposeMapper.xml +++ b/anomaly/src/main/resources/mapper/AbnormalBillDisposeMapper.xml @@ -641,7 +641,7 @@ LEFT JOIN CUSTOM_FIELDS "MAP" ON "MAP".HANDLE = SO.HANDLE AND "MAP"."ATTRIBUTE" = 'MAP' LEFT JOIN Z_ABNORMAL_NC_CODE ZANC ON ZAB.HANDLE = ZANC.ABNORMAL_BILL_BO LEFT JOIN NC_CODE_T NCT ON ('NCCodeBO:' || ZAB.SITE || ',' || ZANC.NC_CODE) = NCT.NC_CODE_BO AND NCT.LOCALE = #{language} - INNER JOIN Z_NWA_USER NWA ON NWA.USER_NAME = ZAB.PB_USER AND NWA.SITE = ZAB.SITE + LEFT JOIN Z_NWA_USER NWA ON NWA.USER_NAME = ZAB.PB_USER AND NWA.SITE = ZAB.SITE LEFT JOIN NC_GROUP NG ON NG.NC_GROUP = ZANC.NC_CODE_GROUP AND NG.SITE = ZAB.SITE LEFT JOIN ROUTER R ON SUBSTR(R.HANDLE,1,INSTR(R.HANDLE,',',-1)-1) = SUBSTR(ZABD.ROUTER_BO,1,INSTR(ZABD.ROUTER_BO,',',-1)-1) AND R.CURRENT_REVISION = 'true' diff --git a/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml b/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml index 79e6ec35..76aaae97 100644 --- a/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml +++ b/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml @@ -58,7 +58,7 @@ - + diff --git a/common/src/main/java/com/foreverwin/mesnac/common/constant/Constants.java b/common/src/main/java/com/foreverwin/mesnac/common/constant/Constants.java index eef644ea..4e31ad21 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/constant/Constants.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/constant/Constants.java @@ -153,4 +153,13 @@ public interface Constants { String ABNORMAL_MESSAGE_CORRECTION_CONFIRM = "CORRECTION_CONFIRM";//纠防确认 String ABNORMAL_MESSAGE_CANCEL = "CANCEL";//取消 + /** + * 打印类型 + */ + // 原材料标签 + String PRINT_TYPE_INV = "INV"; + // 在制品标签 + String PRINT_TYPE_SFC = "SFC"; + + } diff --git a/common/src/main/java/com/foreverwin/mesnac/common/controller/MessageController.java b/common/src/main/java/com/foreverwin/mesnac/common/controller/MessageController.java new file mode 100644 index 00000000..45371064 --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/controller/MessageController.java @@ -0,0 +1,132 @@ +package com.foreverwin.mesnac.common.controller; + +import com.foreverwin.modular.core.util.R; +import com.foreverwin.modular.core.util.FrontPage; +import com.foreverwin.modular.core.util.CommonMethods; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import com.foreverwin.mesnac.common.service.MessageService; +import com.foreverwin.mesnac.common.model.Message; +import java.util.List; + +/** + * + * @author zjw + * @since 2021-08-02 + */ +@RestController +@RequestMapping("/Z-MESSAGE") +public class MessageController { + + @Autowired + public MessageService messageService; + + /** + * 根据id查询 + * + * @param id 主键 + * @return + */ + @ResponseBody + @GetMapping("/{id:.+}") + public R getMessageById(@PathVariable String id) { + return R.ok( messageService.getById(id)); + } + + /** + * 查询所有数据 + * + * @return + */ + @ResponseBody + @GetMapping("") + public R getMessageList(Message message){ + List result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(message); + result = messageService.list(queryWrapper); + return R.ok(result); + } + + /** + * 分页查询数据 + * + * @param frontPage 分页信息 + * @return + */ + @ResponseBody + @GetMapping("/page") + public R page(FrontPage frontPage, Message message){ + IPage result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(message); + if (frontPage.getGlobalQuery() != null && !"".equals(frontPage.getGlobalQuery().trim())) { + //TODO modify global query + queryWrapper.lambda().and(wrapper -> wrapper + .like(Message::getHandle, frontPage.getGlobalQuery()) + .or().like(Message::getSite, frontPage.getGlobalQuery()) + .or().like(Message::getObjectBo, frontPage.getGlobalQuery()) + .or().like(Message::getType, frontPage.getGlobalQuery()) + .or().like(Message::getMessageType, frontPage.getGlobalQuery()) + .or().like(Message::getSendUserGroup, frontPage.getGlobalQuery()) + .or().like(Message::getSendUser, frontPage.getGlobalQuery()) + .or().like(Message::getContent, frontPage.getGlobalQuery()) + .or().like(Message::getUpUserGroup, frontPage.getGlobalQuery()) + .or().like(Message::getUpUser, frontPage.getGlobalQuery()) + .or().like(Message::getUpMessageType, frontPage.getGlobalQuery()) + .or().like(Message::getNode, frontPage.getGlobalQuery()) + .or().like(Message::getStatus, frontPage.getGlobalQuery()) + .or().like(Message::getCreatedUser, frontPage.getGlobalQuery()) + .or().like(Message::getModifiedUser, frontPage.getGlobalQuery()) + ); + } + result = messageService.page(frontPage.getPagePlus(), queryWrapper); + return R.ok(result); + } + + /** + * 新增 + * @param message 传递的实体 + * @return null 失败 实体成功 + */ + @PostMapping + public R save(@RequestBody Message message) { + return R.ok(messageService.save(message)); + } + + /** + * 修改 + * @param message 传递的实体 + * @return null 失败 实体成功 + */ + @PutMapping + public R updateById(@RequestBody Message message) { + return R.ok(messageService.updateById(message)); + } + + /** + * 根据id删除对象 + * @param id 实体ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.DELETE, value = "/{id:.+}") + public R removeById(@PathVariable("id") String id){ + return R.ok(messageService.removeById(id)); + } + + /** + * 批量删除对象 + * @param ids 实体集合ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.POST, value = "/delete-batch") + public R removeByIds(List ids){ + return R.ok(messageService.removeByIds(ids)); + } +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/dto/LabelPrintDto.java b/common/src/main/java/com/foreverwin/mesnac/common/dto/LabelPrintDto.java index 0376f294..e9a55742 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/dto/LabelPrintDto.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/dto/LabelPrintDto.java @@ -15,6 +15,8 @@ public class LabelPrintDto implements Serializable { private String printer; //打印模板名称 private String printTemplate; + + //原材料标签参数 //物料编码 private String item; //物料描述 @@ -24,6 +26,7 @@ public class LabelPrintDto implements Serializable { //批次号 private String batch; + //在制品标签参数 //工作指令 private String workOrder; //图纸版本号 diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/dto/ScrapDto.java b/common/src/main/java/com/foreverwin/mesnac/common/dto/ScrapDto.java similarity index 97% rename from anomaly/src/main/java/com/foreverwin/mesnac/anomaly/dto/ScrapDto.java rename to common/src/main/java/com/foreverwin/mesnac/common/dto/ScrapDto.java index e346569f..701ce0a9 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/dto/ScrapDto.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/dto/ScrapDto.java @@ -1,4 +1,4 @@ -package com.foreverwin.mesnac.anomaly.dto; +package com.foreverwin.mesnac.common.dto; /** * @Description TODO @@ -6,7 +6,6 @@ package com.foreverwin.mesnac.anomaly.dto; * @Since 2021-07-28 */ public class ScrapDto { - private String sfc; private String status; diff --git a/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java b/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java index f22b7682..43d119fc 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java @@ -136,7 +136,11 @@ public enum HandleEnum { /**用户**/ USR("UserBO","UserBO:{0},{1}"), - TOOL("ToolBO","ToolBO:{0},{1}"); + TOOL("ToolBO","ToolBO:{0},{1}"), + + USER_RESOURCE("UserResourceBo","UserResourceBo:{0},{1},{2}"), + + SFC_SCRAP("SfcScrapBo","SfcScrapBo:{0},{1}"); private String prefix; private String pattern; diff --git a/common/src/main/java/com/foreverwin/mesnac/common/mapper/MessageMapper.java b/common/src/main/java/com/foreverwin/mesnac/common/mapper/MessageMapper.java new file mode 100644 index 00000000..e59ec6d2 --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/mapper/MessageMapper.java @@ -0,0 +1,18 @@ +package com.foreverwin.mesnac.common.mapper; + +import com.foreverwin.mesnac.common.model.Message; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + *

+ * Mapper 接口 + *

+ * + * @author zjw + * @since 2021-08-02 + */ +@Repository +public interface MessageMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/model/AbnormalMessage.java b/common/src/main/java/com/foreverwin/mesnac/common/model/Message.java similarity index 87% rename from anomaly/src/main/java/com/foreverwin/mesnac/anomaly/model/AbnormalMessage.java rename to common/src/main/java/com/foreverwin/mesnac/common/model/Message.java index b113c833..a40b12e2 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/model/AbnormalMessage.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/model/Message.java @@ -1,4 +1,4 @@ -package com.foreverwin.mesnac.anomaly.model; +package com.foreverwin.mesnac.common.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -14,13 +14,13 @@ import java.time.LocalDateTime; * *

* - * @author 赵嘉伟 - * @since 2021-07-22 + * @author zjw + * @since 2021-08-02 */ -@TableName("Z_ABNORMAL_MESSAGE") +@TableName("Z_MESSAGE") -public class AbnormalMessage extends Model { +public class Message extends Model { private static final long serialVersionUID = 1L; @@ -37,8 +37,8 @@ public class AbnormalMessage extends Model { /** * 异常单 */ - @TableField("ABNORMAL_BILL_BO") - private String abnormalBillBo; + @TableField("OBJECT_BO") + private String objectBo; /** * 异常类型 */ @@ -88,7 +88,7 @@ public class AbnormalMessage extends Model { * 等级 */ @TableField("GRADE") - private Integer grade; + private Double grade; /** * 消息触发时间 */ @@ -97,8 +97,8 @@ public class AbnormalMessage extends Model { /** * 异常节点 */ - @TableField("ABNORMAL_NODE") - private String abnormalNode; + @TableField("NODE") + private String node; /** * 状态 */ @@ -142,12 +142,12 @@ public class AbnormalMessage extends Model { this.site = site; } - public String getAbnormalBillBo() { - return abnormalBillBo; + public String getObjectBo() { + return objectBo; } - public void setAbnormalBillBo(String abnormalBillBo) { - this.abnormalBillBo = abnormalBillBo; + public void setObjectBo(String objectBo) { + this.objectBo = objectBo; } public String getType() { @@ -222,11 +222,11 @@ public class AbnormalMessage extends Model { this.upDateTime = upDateTime; } - public Integer getGrade() { + public Double getGrade() { return grade; } - public void setGrade(Integer grade) { + public void setGrade(Double grade) { this.grade = grade; } @@ -238,12 +238,12 @@ public class AbnormalMessage extends Model { this.responseDateTime = responseDateTime; } - public String getAbnormalNode() { - return abnormalNode; + public String getNode() { + return node; } - public void setAbnormalNode(String abnormalNode) { - this.abnormalNode = abnormalNode; + public void setNode(String node) { + this.node = node; } public String getStatus() { @@ -290,7 +290,7 @@ public static final String HANDLE = "HANDLE"; public static final String SITE = "SITE"; -public static final String ABNORMAL_BILL_BO = "ABNORMAL_BILL_BO"; +public static final String OBJECT_BO = "OBJECT_BO"; public static final String TYPE = "TYPE"; @@ -314,7 +314,7 @@ public static final String GRADE = "GRADE"; public static final String RESPONSE_DATE_TIME = "RESPONSE_DATE_TIME"; -public static final String ABNORMAL_NODE = "ABNORMAL_NODE"; +public static final String NODE = "NODE"; public static final String STATUS = "STATUS"; @@ -334,10 +334,10 @@ public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME"; @Override public String toString() { - return "AbnormalMessage{" + + return "Message{" + "handle = " + handle + ", site = " + site + - ", abnormalBillBo = " + abnormalBillBo + + ", objectBo = " + objectBo + ", type = " + type + ", messageType = " + messageType + ", sendUserGroup = " + sendUserGroup + @@ -349,7 +349,7 @@ public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME"; ", upDateTime = " + upDateTime + ", grade = " + grade + ", responseDateTime = " + responseDateTime + - ", abnormalNode = " + abnormalNode + + ", node = " + node + ", status = " + status + ", createdUser = " + createdUser + ", createdDateTime = " + createdDateTime + diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/AnomalyService.java b/common/src/main/java/com/foreverwin/mesnac/common/service/AnomalyService.java index 75839c3a..8952f968 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/AnomalyService.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/AnomalyService.java @@ -1,5 +1,9 @@ package com.foreverwin.mesnac.common.service; +import com.foreverwin.mesnac.common.dto.ScrapDto; + +import java.util.List; + /** * @Description TODO * @Author zhaojiawei @@ -20,4 +24,16 @@ public interface AnomalyService { void createAnomalyTask(String category, String resource, String shopOrder, String sfc, String ncCodes,String position,String ncQty, String ncDescription,String userGroup); + + /** + * 判断产品条码在质量异常中是否为报废 + * @param sfc + * @return + */ + boolean jgProductionIsScrap(String site,String sfc); + + /** + * 检索 + */ + List getScrapDtoBysfc(String site, String sfc); } diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/MessageService.java b/common/src/main/java/com/foreverwin/mesnac/common/service/MessageService.java new file mode 100644 index 00000000..ca38a076 --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/MessageService.java @@ -0,0 +1,28 @@ +package com.foreverwin.mesnac.common.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.foreverwin.mesnac.common.model.Message; +import com.baomidou.mybatisplus.extension.service.IService; +import com.foreverwin.modular.core.util.FrontPage; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author zjw + * @since 2021-08-02 + */ +public interface MessageService extends IService { + + /** + * 分页查询 + * @param frontPage + * @return + */ + IPage selectPage(FrontPage frontPage, Message message); + + List selectList(Message message); +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/MessageServiceImpl.java b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/MessageServiceImpl.java new file mode 100644 index 00000000..07f75498 --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/MessageServiceImpl.java @@ -0,0 +1,46 @@ +package com.foreverwin.mesnac.common.service.impl; + +import com.foreverwin.modular.core.util.FrontPage; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.foreverwin.mesnac.common.model.Message; +import com.foreverwin.mesnac.common.mapper.MessageMapper; +import com.foreverwin.mesnac.common.service.MessageService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +/** + *

+ * 服务实现类 + *

+ * + * @author zjw + * @since 2021-08-02 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class MessageServiceImpl extends ServiceImpl implements MessageService { + + + @Autowired + private MessageMapper messageMapper; + + @Override + public IPage selectPage(FrontPage frontPage, Message message) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(message); + return super.page(frontPage.getPagePlus(), queryWrapper); + } + + @Override + public List selectList(Message message) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(message); + return super.list(queryWrapper); + } + + +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/PrintLogServiceImpl.java b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/PrintLogServiceImpl.java index 08f017d8..11a53c8a 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/PrintLogServiceImpl.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/PrintLogServiceImpl.java @@ -6,11 +6,14 @@ import cn.hutool.json.JSONString; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.foreverwin.mesnac.common.constant.Constants; import com.foreverwin.mesnac.common.dto.LabelPrintDto; import com.foreverwin.mesnac.common.model.PrintLog; import com.foreverwin.mesnac.common.mapper.PrintLogMapper; import com.foreverwin.mesnac.common.service.PrintLogService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.foreverwin.modular.core.exception.BusinessException; +import com.foreverwin.modular.core.util.CommonMethods; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; @@ -39,6 +42,9 @@ public class PrintLogServiceImpl extends ServiceImpl i @Autowired private PrintLogMapper printLogMapper; + @Autowired + private PrintLogService printLogService; + @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public void savePrintLog(String site, String user, PrintLog printLog) { @@ -54,10 +60,6 @@ public class PrintLogServiceImpl extends ServiceImpl i @Override public void labelPrint(String site, String user, List printList) { - if (printList == null || printList.size() <= 0) { - return; - } - List labelPrintDtoList = new ArrayList<>(); for (PrintLog printLog : printList) { LabelPrintDto labelPrintDto = new LabelPrintDto(); @@ -67,7 +69,32 @@ public class PrintLogServiceImpl extends ServiceImpl i labelPrintDto.setItemDescription(printLog.getItemDescription()); labelPrintDtoList.add(labelPrintDto); } + String post = HttpUtil.post(printServer, JSON.toJSONString(labelPrintDtoList), 30000); + /** + * {"msg":"打印成功","code":0} + * {"msg":"打印失败","code":500} + * 根据返回值,更新打印机信息-printName及打印是否成功信息isPrint + */ + JSONObject jsonObject = JSONObject.parseObject(post); + String code = jsonObject.getString("code"); + if (code == null){ + + } + List printLogList = new ArrayList<>(); + if (post.indexOf("500") != -1){ + throw BusinessException.build("打印失败!"); + } + for (PrintLog printLog : printList) { + PrintLog printLogOne = new PrintLog(); + printLogOne.setHandle(printLog.getHandle()); + printLogOne.setIsPrint("true"); + // 更新日志 + if (printLog.getCategory().equals(Constants.PRINT_TYPE_INV)){ + printLogOne.setPrintName(printLog.getPrintName()); + } + printLogList.add(printLogOne); + } + printLogService.updateBatchById(printLogList); - HttpUtil.post(printServer, JSON.toJSONString(labelPrintDtoList), 30000); } } \ No newline at end of file diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/util/ActiveMQUtil.java b/common/src/main/java/com/foreverwin/mesnac/common/util/ActiveMQUtil.java similarity index 97% rename from anomaly/src/main/java/com/foreverwin/mesnac/anomaly/util/ActiveMQUtil.java rename to common/src/main/java/com/foreverwin/mesnac/common/util/ActiveMQUtil.java index 762efce9..b351f462 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/util/ActiveMQUtil.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/util/ActiveMQUtil.java @@ -1,4 +1,4 @@ -package com.foreverwin.mesnac.anomaly.util; +package com.foreverwin.mesnac.common.util; import org.apache.activemq.ActiveMQConnectionFactory; import org.json.JSONObject; diff --git a/anomaly/src/main/resources/mapper/AbnormalMessageMapper.xml b/common/src/main/resources/mapper/MessageMapper.xml similarity index 87% rename from anomaly/src/main/resources/mapper/AbnormalMessageMapper.xml rename to common/src/main/resources/mapper/MessageMapper.xml index 345bbf1c..194046bb 100644 --- a/anomaly/src/main/resources/mapper/AbnormalMessageMapper.xml +++ b/common/src/main/resources/mapper/MessageMapper.xml @@ -1,12 +1,12 @@ - + - + - + @@ -18,7 +18,7 @@ - + @@ -28,17 +28,17 @@ - HANDLE, SITE, ABNORMAL_BILL_BO, TYPE, MESSAGE_TYPE, SEND_USER_GROUP, SEND_USER, CONTENT, UP_USER_GROUP, UP_USER, UP_MESSAGE_TYPE, UP_DATE_TIME, GRADE, RESPONSE_DATE_TIME, ABNORMAL_NODE, STATUS, CREATED_USER, CREATED_DATE_TIME, MODIFIED_USER, MODIFIED_DATE_TIME + HANDLE, SITE, OBJECT_BO, TYPE, MESSAGE_TYPE, SEND_USER_GROUP, SEND_USER, CONTENT, UP_USER_GROUP, UP_USER, UP_MESSAGE_TYPE, UP_DATE_TIME, GRADE, RESPONSE_DATE_TIME, NODE, STATUS, CREATED_USER, CREATED_DATE_TIME, MODIFIED_USER, MODIFIED_DATE_TIME SELECT - FROM Z_ABNORMAL_MESSAGE WHERE HANDLE IN ( + FROM Z_MESSAGE WHERE HANDLE IN ( #{item} ) - - INSERT INTO Z_ABNORMAL_MESSAGE + + INSERT INTO Z_MESSAGE HANDLE, SITE, - ABNORMAL_BILL_BO, + OBJECT_BO, TYPE, MESSAGE_TYPE, SEND_USER_GROUP, @@ -330,7 +330,7 @@ UP_DATE_TIME, GRADE, RESPONSE_DATE_TIME, - ABNORMAL_NODE, + NODE, STATUS, CREATED_USER, CREATED_DATE_TIME, @@ -340,7 +340,7 @@ #{handle}, #{site}, - #{abnormalBillBo}, + #{objectBo}, #{type}, #{messageType}, #{sendUserGroup}, @@ -352,7 +352,7 @@ #{upDateTime}, #{grade}, #{responseDateTime}, - #{abnormalNode}, + #{node}, #{status}, #{createdUser}, #{createdDateTime}, @@ -361,15 +361,15 @@ - - INSERT INTO Z_ABNORMAL_MESSAGE + + INSERT INTO Z_MESSAGE VALUES #{handle}, #{site}, - #{abnormalBillBo}, + #{objectBo}, #{type}, #{messageType}, #{sendUserGroup}, @@ -381,7 +381,7 @@ #{upDateTime}, #{grade}, #{responseDateTime}, - #{abnormalNode}, + #{node}, #{status}, #{createdUser}, #{createdDateTime}, @@ -392,9 +392,9 @@ - UPDATE Z_ABNORMAL_MESSAGE + UPDATE Z_MESSAGE SITE=#{et.site}, - ABNORMAL_BILL_BO=#{et.abnormalBillBo}, + OBJECT_BO=#{et.objectBo}, TYPE=#{et.type}, MESSAGE_TYPE=#{et.messageType}, SEND_USER_GROUP=#{et.sendUserGroup}, @@ -406,7 +406,7 @@ UP_DATE_TIME=#{et.upDateTime}, GRADE=#{et.grade}, RESPONSE_DATE_TIME=#{et.responseDateTime}, - ABNORMAL_NODE=#{et.abnormalNode}, + NODE=#{et.node}, STATUS=#{et.status}, CREATED_USER=#{et.createdUser}, CREATED_DATE_TIME=#{et.createdDateTime}, @@ -417,9 +417,9 @@ - UPDATE Z_ABNORMAL_MESSAGE + UPDATE Z_MESSAGE SITE=#{et.site}, - ABNORMAL_BILL_BO=#{et.abnormalBillBo}, + OBJECT_BO=#{et.objectBo}, TYPE=#{et.type}, MESSAGE_TYPE=#{et.messageType}, SEND_USER_GROUP=#{et.sendUserGroup}, @@ -431,7 +431,7 @@ UP_DATE_TIME=#{et.upDateTime}, GRADE=#{et.grade}, RESPONSE_DATE_TIME=#{et.responseDateTime}, - ABNORMAL_NODE=#{et.abnormalNode}, + NODE=#{et.node}, STATUS=#{et.status}, CREATED_USER=#{et.createdUser}, CREATED_DATE_TIME=#{et.createdDateTime}, @@ -442,9 +442,9 @@ - UPDATE Z_ABNORMAL_MESSAGE + UPDATE Z_MESSAGE SITE=#{et.site}, - ABNORMAL_BILL_BO=#{et.abnormalBillBo}, + OBJECT_BO=#{et.objectBo}, TYPE=#{et.type}, MESSAGE_TYPE=#{et.messageType}, SEND_USER_GROUP=#{et.sendUserGroup}, @@ -456,7 +456,7 @@ UP_DATE_TIME=#{et.upDateTime}, GRADE=#{et.grade}, RESPONSE_DATE_TIME=#{et.responseDateTime}, - ABNORMAL_NODE=#{et.abnormalNode}, + NODE=#{et.node}, STATUS=#{et.status}, CREATED_USER=#{et.createdUser}, CREATED_DATE_TIME=#{et.createdDateTime}, @@ -468,7 +468,7 @@ HANDLE=#{ew.entity.handle} AND SITE=#{ew.entity.site} - AND ABNORMAL_BILL_BO=#{ew.entity.abnormalBillBo} + AND OBJECT_BO=#{ew.entity.objectBo} AND TYPE=#{ew.entity.type} AND MESSAGE_TYPE=#{ew.entity.messageType} AND SEND_USER_GROUP=#{ew.entity.sendUserGroup} @@ -480,7 +480,7 @@ AND UP_DATE_TIME=#{ew.entity.upDateTime} AND GRADE=#{ew.entity.grade} AND RESPONSE_DATE_TIME=#{ew.entity.responseDateTime} - AND ABNORMAL_NODE=#{ew.entity.abnormalNode} + AND NODE=#{ew.entity.node} AND STATUS=#{ew.entity.status} AND CREATED_USER=#{ew.entity.createdUser} AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} @@ -498,11 +498,11 @@ - DELETE FROM Z_ABNORMAL_MESSAGE WHERE HANDLE=#{handle} + DELETE FROM Z_MESSAGE WHERE HANDLE=#{handle} - DELETE FROM Z_ABNORMAL_MESSAGE + DELETE FROM Z_MESSAGE @@ -515,7 +515,7 @@ - DELETE FROM Z_ABNORMAL_MESSAGE + DELETE FROM Z_MESSAGE @@ -523,7 +523,7 @@ HANDLE=#{ew.entity.handle} AND SITE=#{ew.entity.site} - AND ABNORMAL_BILL_BO=#{ew.entity.abnormalBillBo} + AND OBJECT_BO=#{ew.entity.objectBo} AND TYPE=#{ew.entity.type} AND MESSAGE_TYPE=#{ew.entity.messageType} AND SEND_USER_GROUP=#{ew.entity.sendUserGroup} @@ -535,7 +535,7 @@ AND UP_DATE_TIME=#{ew.entity.upDateTime} AND GRADE=#{ew.entity.grade} AND RESPONSE_DATE_TIME=#{ew.entity.responseDateTime} - AND ABNORMAL_NODE=#{ew.entity.abnormalNode} + AND NODE=#{ew.entity.node} AND STATUS=#{ew.entity.status} AND CREATED_USER=#{ew.entity.createdUser} AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} @@ -553,7 +553,7 @@ - DELETE FROM Z_ABNORMAL_MESSAGE WHERE HANDLE IN ( + DELETE FROM Z_MESSAGE WHERE HANDLE IN ( #{item} ) diff --git a/dataimport/pom.xml b/dataimport/pom.xml index b317b82c..5d9ee2a1 100644 --- a/dataimport/pom.xml +++ b/dataimport/pom.xml @@ -67,5 +67,9 @@ com.foreverwin.mesnac meapi + + com.foreverwin.mesnac + dispatch + \ No newline at end of file diff --git a/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/handler/HandlerFactory.java b/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/handler/HandlerFactory.java index c0110de6..985693b0 100644 --- a/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/handler/HandlerFactory.java +++ b/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/handler/HandlerFactory.java @@ -30,6 +30,8 @@ public class HandlerFactory { //return new MessageTypeHandler(); case "tool" : return new ToolHandler(); + case "userResource" : + return new UserResourceHandler(); } return null; diff --git a/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/handler/UserResourceHandler.java b/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/handler/UserResourceHandler.java new file mode 100644 index 00000000..ba1e049d --- /dev/null +++ b/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/handler/UserResourceHandler.java @@ -0,0 +1,163 @@ +package com.foreverwin.mesnac.dataimport.handler; + +import com.alibaba.fastjson.JSONObject; +import com.foreverwin.mesnac.common.enums.HandleEnum; +import com.foreverwin.mesnac.common.util.StringUtil; +import com.foreverwin.mesnac.dataimport.handler.base.BaseHandler; +import com.foreverwin.mesnac.dataimport.reader.FileReader; +import com.foreverwin.mesnac.dataimport.reader.FileReaderBuilder; +import com.foreverwin.mesnac.dataimport.reader.RowVisitor; +import com.foreverwin.mesnac.dataimport.service.MasterObjectDefine; +import com.foreverwin.mesnac.dispatch.mapper.UserResourceMapper; +import com.foreverwin.mesnac.dispatch.model.UserResource; +import com.foreverwin.mesnac.dispatch.service.UserResourceService; +import com.foreverwin.mesnac.meapi.mapper.NwaUserMapper; +import com.foreverwin.mesnac.meapi.mapper.ResrceMapper; +import com.foreverwin.mesnac.meapi.model.NwaUser; +import com.foreverwin.mesnac.meapi.model.Resrce; +import com.foreverwin.modular.core.exception.BusinessException; +import com.foreverwin.modular.core.util.CommonMethods; +import com.foreverwin.modular.core.util.I18nUtil; +import org.springframework.beans.factory.annotation.Autowired; + +import java.io.InputStream; +import java.time.LocalDateTime; +import java.util.Map; + + +/** + * @Description TODO + * @Author zhaojiawei + * @Since 2021-07-29 + */ +public class UserResourceHandler extends BaseHandler { + + @Autowired + private ResrceMapper resrceMapper; + + @Autowired + private UserResourceService userResourceService; + + @Autowired + private NwaUserMapper nwaUserMapper; + + @Autowired + private UserResourceMapper userResourceMapper; + + @Override + public String importFile(String site, InputStream inputStream, String fileType, String mode) throws Exception { + int row = 0; + StringBuffer buffer = new StringBuffer(); + Integer[] failedNumber = new Integer[]{0}; + + try { + FileReader fileReader = new FileReaderBuilder().build(fileType); + RowVisitor visitor = getRowVisitor(site, mode, buffer, failedNumber); + row = fileReader.visitor(visitor).read(inputStream, getHeaders()); + } catch (Exception e) { + buffer.append(e.getMessage() + "\n"); + } + + if (buffer.length() > 0) { + buffer.insert(0, I18nUtil.getI18nText("MaterData.import.Summary", new Object[]{row + failedNumber[0], row, failedNumber[0]}) + "\n"); + throw BusinessException.build(buffer.toString()); + } + buffer.insert(0, I18nUtil.getI18nText("MaterData.import.Summary", new Object[]{row + failedNumber[0], row, failedNumber[0]}) + "\n"); + + return buffer.toString(); + } + + @Override + public Map getHeaders() { + return MasterObjectDefine.getHeadsMapping("USER_RESOURCE"); + } + + public RowVisitor getRowVisitor(String site, String mode, StringBuffer buffer, Integer[] failedNumber) { + + return new RowVisitor() { + + @Override + public int visit(long index, JSONObject jsonObject) { + + LocalDateTime now = LocalDateTime.now(); + String user = CommonMethods.getUser(); + String resrce = StringUtil.toString(jsonObject.getString("resrce")); + // String resrceDescription = StringUtil.toString(jsonObject.getString("resrceDescription")); + String userId = StringUtil.toString(jsonObject.getString("userId")); + String userDescription = StringUtil.toString(jsonObject.getString("userDescription")); + String temporaryUser = StringUtil.toString(jsonObject.getString("temporaryUser")); + String status = StringUtil.toString(jsonObject.getString("status")); + UserResource userResource = new UserResource(); + userResource.setHandle(HandleEnum.USER_RESOURCE.getHandle(site, resrce, userId)); + userResource.setSite(site); + userResource.setResourceBo(HandleEnum.RESOURCE.getHandle(site,resrce)); + userResource.setResrce(resrce); + // userResource.setResrceDescription(resrceDescription); + userResource.setUserId(userId); + userResource.setUserDescription(userDescription); + if("Y".equals(temporaryUser)){ + userResource.setTemporaryUser("true"); + }else { + userResource.setTemporaryUser("false"); + } + + if("N".equals(status)){ + userResource.setStatus("false"); + }else { + userResource.setStatus("true"); + } + + //判断是否是更新还是插入,如果是更新,则没有创建时间和人员 + UserResource result = userResourceMapper.selectById(userResource.getHandle()); + if(result == null){ + userResource.setCreatedUser(user); + userResource.setCreatedDateTime(now); + } + userResource.setModifiedUser(user); + userResource.setModifiedDateTime(now); + try { + //如果资源为空或者员工编号为空,则直接跳过 + if (StringUtil.notEmpty(resrce) && StringUtil.notEmpty(userId)) { + //站点 + jsonObject.put("site", site); + //不管用户选啥模式,都是更新和插入 + this.updateAndInsert(userResource,index); + userResourceService.saveOrUpdate(userResource); + } + return 1; + } catch (Exception e) { + throw BusinessException.build(e.getMessage()); + } + } + + @Override + public String[] getHeader() { + return null; + } + + boolean updateAndInsert(UserResource userResource,Long index){ + //判断资源是否存在 + Resrce resrce = resrceMapper.selectById(userResource.getResourceBo()); + + if(resrce == null){ + throw BusinessException.build("第"+index+"行的资源不存在"); + } + //设置资源描述 + userResource.setResrceDescription(resrce.getDescription()); + //设置员工描述 + NwaUser nwaUser = nwaUserMapper.selectById(HandleEnum.USER.getHandle(userResource.getSite(), userResource.getUserId())); + if(nwaUser != null){ + userResource.setUserDescription(nwaUser.getFullName()); + }else if("true".equals(userResource.getTemporaryUser())){ + //不做任何操作 + }else{ + throw BusinessException.build("第"+index+"行的用户不存在,必须为临时员工"); + } + return true; + } + }; + + + } + +} diff --git a/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/service/MasterObjectDefine.java b/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/service/MasterObjectDefine.java index b13734a2..853136d5 100644 --- a/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/service/MasterObjectDefine.java +++ b/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/service/MasterObjectDefine.java @@ -176,6 +176,15 @@ public class MasterObjectDefine { cvsHeadsMapping.put("remark","备注"); break; + case "USER_RESOURCE": + cvsHeadsMapping.put("resrce","资源编码"); + cvsHeadsMapping.put("resrceDescription","资源描述"); + cvsHeadsMapping.put("userId","员工编号"); + cvsHeadsMapping.put("userDescription","员工姓名"); + cvsHeadsMapping.put("temporaryUser","是否临时员工"); + cvsHeadsMapping.put("status","是否有效"); + break; + default: break; } diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/UserResourceService.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/UserResourceService.java index dc14e96d..35fb6aef 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/UserResourceService.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/UserResourceService.java @@ -7,6 +7,7 @@ import com.foreverwin.mesnac.dispatch.model.UserResource; import com.foreverwin.mesnac.meapi.model.NwaUser; import com.foreverwin.modular.core.util.FrontPage; +import java.util.HashMap; import java.util.List; /** @@ -32,7 +33,7 @@ public interface UserResourceService extends IService { List findEnableList(String site, String resource, String user); - List findAll(UserResourceDto userResourceDto); + HashMap findAll(UserResourceDto userResourceDto); void saveAll(List userResourceDtoList,String resource,String user); diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/UserResourceServiceImpl.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/UserResourceServiceImpl.java index c4987f72..f57ea7b5 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/UserResourceServiceImpl.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/UserResourceServiceImpl.java @@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; /** *

@@ -69,11 +70,18 @@ public class UserResourceServiceImpl extends ServiceImpl findAll(UserResourceDto userResourceDto) { + public HashMap findAll(UserResourceDto userResourceDto) { String site = CommonMethods.getSite(); String resource = userResourceDto.getResrce(); String userId = userResourceDto.getUserId(); - return userResourceMapper.findAll(site, resource, userId); + + HashMap hashMap = new HashMap<>();; + List nwaUserList = nwaUserService.selectList(null); + List userResourceList = userResourceMapper.findAll(site, resource, userId); + hashMap.put("users",nwaUserList); + hashMap.put("userResources",userResourceList); + return hashMap; + } @Override @@ -99,7 +107,8 @@ public class UserResourceServiceImpl extends ServiceImpl 0){ this.saveOrUpdateBatch(userResourceList); } - } + } \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcScrapController.java b/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcScrapController.java new file mode 100644 index 00000000..3c129a57 --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcScrapController.java @@ -0,0 +1,153 @@ +package com.foreverwin.mesnac.production.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.foreverwin.mesnac.common.service.AnomalyService; +import com.foreverwin.mesnac.production.model.SfcScrap; +import com.foreverwin.mesnac.production.service.SfcScrapService; +import com.foreverwin.modular.core.util.FrontPage; +import com.foreverwin.modular.core.util.R; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; + +/** + * + * @author zjw + * @since 2021-07-30 + */ +@RestController +@RequestMapping("/Z-SFC-SCRAP") +public class SfcScrapController { + + @Autowired + public SfcScrapService sfcScrapService; + + @Autowired + private AnomalyService anomalyService; + + /** + * 根据id查询 + * + * @param id 主键 + * @return + */ + @ResponseBody + @GetMapping("/{id:.+}") + public R getSfcScrapById(@PathVariable String id) { + return R.ok( sfcScrapService.getById(id)); + } + + /** + * 查询所有数据 + * + * @return + */ + @ResponseBody + @GetMapping("") + public R getSfcScrapList(SfcScrap sfcScrap){ + List result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcScrap); + result = sfcScrapService.list(queryWrapper); + return R.ok(result); + } + + /** + * 分页查询数据 + * + * @param frontPage 分页信息 + * @return + */ + @ResponseBody + @GetMapping("/page") + public R page(FrontPage frontPage, SfcScrap sfcScrap){ + IPage result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcScrap); + if (frontPage.getGlobalQuery() != null && !"".equals(frontPage.getGlobalQuery().trim())) { + //TODO modify global query + queryWrapper.lambda().and(wrapper -> wrapper + .like(SfcScrap::getHandle, frontPage.getGlobalQuery()) + .or().like(SfcScrap::getSite, frontPage.getGlobalQuery()) + .or().like(SfcScrap::getSfc, frontPage.getGlobalQuery()) + .or().like(SfcScrap::getOperation, frontPage.getGlobalQuery()) + .or().like(SfcScrap::getStepId, frontPage.getGlobalQuery()) + .or().like(SfcScrap::getType, frontPage.getGlobalQuery()) + .or().like(SfcScrap::getReason, frontPage.getGlobalQuery()) + .or().like(SfcScrap::getCreatedUser, frontPage.getGlobalQuery()) + .or().like(SfcScrap::getModifiedUser, frontPage.getGlobalQuery()) + ); + } + result = sfcScrapService.page(frontPage.getPagePlus(), queryWrapper); + return R.ok(result); + } + + /** + * 新增 + * @param sfcScrap 传递的实体 + * @return null 失败 实体成功 + */ + @PostMapping + public R save(@RequestBody SfcScrap sfcScrap) { + return R.ok(sfcScrapService.save(sfcScrap)); + } + + /** + * 修改 + * @param sfcScrap 传递的实体 + * @return null 失败 实体成功 + */ + @PutMapping + public R updateById(@RequestBody SfcScrap sfcScrap) { + return R.ok(sfcScrapService.updateById(sfcScrap)); + } + + /** + * 根据id删除对象 + * @param id 实体ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.DELETE, value = "/{id:.+}") + public R removeById(@PathVariable("id") String id){ + return R.ok(sfcScrapService.removeById(id)); + } + + /** + * 批量删除对象 + * @param ids 实体集合ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.POST, value = "/delete-batch") + public R removeByIds(List ids){ + return R.ok(sfcScrapService.removeByIds(ids)); + } + + /** + * 生产报废检索功能 + * @param site + * @param sfc + * @return + */ + @GetMapping("/getScrapDtoBysfc") + public R getScrapDtoBysfc(String site,String sfc){ + + + return R.ok(anomalyService.getScrapDtoBysfc(site,sfc)); + } + + /** + * 生产报废的报废功能 + * @param sfcScrap + * @return + */ + @PostMapping("/scrap") + public R scrap(@RequestBody HashMap param){ + return R.ok(sfcScrapService.scrap(param)); + } + +} \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/mapper/SfcScrapMapper.java b/production/src/main/java/com/foreverwin/mesnac/production/mapper/SfcScrapMapper.java new file mode 100644 index 00000000..70850ea0 --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/mapper/SfcScrapMapper.java @@ -0,0 +1,18 @@ +package com.foreverwin.mesnac.production.mapper; + +import com.foreverwin.mesnac.production.model.SfcScrap; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + *

+ * 产品报废 Mapper 接口 + *

+ * + * @author zjw + * @since 2021-07-30 + */ +@Repository +public interface SfcScrapMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/model/SfcScrap.java b/production/src/main/java/com/foreverwin/mesnac/production/model/SfcScrap.java new file mode 100644 index 00000000..be8fee96 --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/model/SfcScrap.java @@ -0,0 +1,232 @@ +package com.foreverwin.mesnac.production.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *

+ * 产品报废 + *

+ * + * @author zjw + * @since 2021-07-30 + */ + +@TableName("Z_SFC_SCRAP") + +public class SfcScrap extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "HANDLE", type = IdType.INPUT) + private String handle; + /** + * 站点 + */ + @TableField("SITE") + private String site; + /** + * 产品条码 + */ + @TableField("SFC") + private String sfc; + /** + * 工序 + */ + @TableField("OPERATION") + private String operation; + /** + * 步骤 + */ + @TableField("STEP_ID") + private String stepId; + /** + * 数量 + */ + @TableField("QTY") + private Double qty; + /** + * 类型(用,分割) + */ + @TableField("TYPE") + private String type; + /** + * 废品原因 + */ + @TableField("REASON") + private String reason; + /** + * 创建人 + */ + @TableField("CREATED_USER") + private String createdUser; + /** + * 创建时间 + */ + @TableField("CREATED_DATE_TIME") + private LocalDateTime createdDateTime; + /** + * 修改人 + */ + @TableField("MODIFIED_USER") + private String modifiedUser; + /** + * 修改日期 + */ + @TableField("MODIFIED_DATE_TIME") + private LocalDateTime modifiedDateTime; + + + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + public String getSite() { + return site; + } + + public void setSite(String site) { + this.site = site; + } + + public String getSfc() { + return sfc; + } + + public void setSfc(String sfc) { + this.sfc = sfc; + } + + public String getOperation() { + return operation; + } + + public void setOperation(String operation) { + this.operation = operation; + } + + public String getStepId() { + return stepId; + } + + public void setStepId(String stepId) { + this.stepId = stepId; + } + + public Double getQty() { + return qty; + } + + public void setQty(Double qty) { + this.qty = qty; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public String getCreatedUser() { + return createdUser; + } + + public void setCreatedUser(String createdUser) { + this.createdUser = createdUser; + } + + public LocalDateTime getCreatedDateTime() { + return createdDateTime; + } + + public void setCreatedDateTime(LocalDateTime createdDateTime) { + this.createdDateTime = createdDateTime; + } + + public String getModifiedUser() { + return modifiedUser; + } + + public void setModifiedUser(String modifiedUser) { + this.modifiedUser = modifiedUser; + } + + public LocalDateTime getModifiedDateTime() { + return modifiedDateTime; + } + + public void setModifiedDateTime(LocalDateTime modifiedDateTime) { + this.modifiedDateTime = modifiedDateTime; + } + +public static final String HANDLE = "HANDLE"; + +public static final String SITE = "SITE"; + +public static final String SFC = "SFC"; + +public static final String OPERATION = "OPERATION"; + +public static final String STEP_ID = "STEP_ID"; + +public static final String QTY = "QTY"; + +public static final String TYPE = "TYPE"; + +public static final String REASON = "REASON"; + +public static final String CREATED_USER = "CREATED_USER"; + +public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME"; + +public static final String MODIFIED_USER = "MODIFIED_USER"; + +public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME"; + + + @Override + protected Serializable pkVal() { + return this.handle; + } + + @Override + public String toString() { + return "SfcScrap{" + + "handle = " + handle + + ", site = " + site + + ", sfc = " + sfc + + ", operation = " + operation + + ", stepId = " + stepId + + ", qty = " + qty + + ", type = " + type + + ", reason = " + reason + + ", createdUser = " + createdUser + + ", createdDateTime = " + createdDateTime + + ", modifiedUser = " + modifiedUser + + ", modifiedDateTime = " + modifiedDateTime + + "}"; + } +} \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/PodTemplateService.java b/production/src/main/java/com/foreverwin/mesnac/production/service/PodTemplateService.java index c10c26d3..29c591cd 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/service/PodTemplateService.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/PodTemplateService.java @@ -4,6 +4,7 @@ import com.foreverwin.mesnac.meapi.dto.SfcDto; import com.foreverwin.mesnac.meapi.dto.WorkCenterDto; import com.foreverwin.mesnac.meapi.model.Sfc; +import java.math.BigDecimal; import java.util.Map; public interface PodTemplateService { @@ -17,6 +18,8 @@ public interface PodTemplateService { void sfcComplete(Map map); + void sendErp(String sfc, String stepId, BigDecimal qty, BigDecimal scrapQty); + SfcDto getInfoBySfc(Sfc sfc); } diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/SfcScrapService.java b/production/src/main/java/com/foreverwin/mesnac/production/service/SfcScrapService.java new file mode 100644 index 00000000..f2b53f63 --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/SfcScrapService.java @@ -0,0 +1,32 @@ +package com.foreverwin.mesnac.production.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.foreverwin.mesnac.production.model.SfcScrap; +import com.foreverwin.modular.core.util.FrontPage; + +import java.util.HashMap; +import java.util.List; + +/** + *

+ * 产品报废 服务类 + *

+ * + * @author zjw + * @since 2021-07-30 + */ +public interface SfcScrapService extends IService { + + /** + * 分页查询 + * @param frontPage + * @return + */ + IPage selectPage(FrontPage frontPage, SfcScrap sfcScrap); + + List selectList(SfcScrap sfcScrap); + + List scrap(HashMap param) ; + +} \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java index 1fdab6f5..d4698b87 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java @@ -303,7 +303,7 @@ public class PodTemplateServiceImpl implements PodTemplateService { inspectionTaskService.createTask(paramMap); } //报工 - sendErp(sfc, stepId, qty); + sendErp(sfc, stepId, qty,BigDecimal.ZERO); } catch (Exception e) { ExceptionUtil.throwException(e); } @@ -399,8 +399,8 @@ public class PodTemplateServiceImpl implements PodTemplateService { assemblyServiceInterface.assembleByComponents(assembleComponentsRequest); } - - void sendErp(String sfc, String stepId, BigDecimal qty) { + @Override + public void sendErp(String sfc, String stepId, BigDecimal qty ,BigDecimal scrapQty) { Sfc sfcServiceById = sfcService.getById(HandleEnum.SFC.getHandle(CommonMethods.getSite(),sfc)); String shopOrderBo = sfcServiceById.getShopOrderBo(); String shopOrder = StringUtil.trimHandle(shopOrderBo); @@ -416,7 +416,7 @@ public class PodTemplateServiceImpl implements PodTemplateService { //良品数量 struIn.setLmnga(qty); //报废数量 - struIn.setXmnga(BigDecimal.ZERO); + struIn.setXmnga(scrapQty); //机器工时 struIn.setIsm01(BigDecimal.ZERO); //人工工时 diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java new file mode 100644 index 00000000..d975bd34 --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java @@ -0,0 +1,148 @@ +package com.foreverwin.mesnac.production.service.impl; + +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.foreverwin.mesnac.common.enums.HandleEnum; +import com.foreverwin.mesnac.common.util.StringUtil; +import com.foreverwin.mesnac.meapi.mapper.SfcMapper; +import com.foreverwin.mesnac.meapi.model.Sfc; +import com.foreverwin.mesnac.production.mapper.SfcScrapMapper; +import com.foreverwin.mesnac.production.model.SfcScrap; +import com.foreverwin.mesnac.production.service.PodTemplateService; +import com.foreverwin.mesnac.production.service.SfcScrapService; +import com.foreverwin.modular.core.exception.BaseException; +import com.foreverwin.modular.core.meext.MEServices; +import com.foreverwin.modular.core.util.CommonMethods; +import com.foreverwin.modular.core.util.FrontPage; +import com.sap.me.production.ScrapDeleteServiceInterface; +import com.sap.me.production.ScrapSfcRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +/** + *

+ * 产品报废 服务实现类 + *

+ * + * @author zjw + * @since 2021-07-30 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class SfcScrapServiceImpl extends ServiceImpl implements SfcScrapService { + + + @Autowired + private SfcScrapMapper sfcScrapMapper; + + @Autowired + private SfcMapper sfcMapper; + + @Autowired + private PodTemplateService podTemplateService; + + @Override + public IPage selectPage(FrontPage frontPage, SfcScrap sfcScrap) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcScrap); + return super.page(frontPage.getPagePlus(), queryWrapper); + } + + @Override + public List selectList(SfcScrap sfcScrap) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcScrap); + return super.list(queryWrapper); + } + + + @Override + public List scrap(HashMap param) { + String user = CommonMethods.getUser(); + LocalDateTime now = LocalDateTime.now(); + String reason = (String)param.get("reason"); + String site = (String)param.get("site"); + + //类型 + List _type = (List)param.get("type"); + StringBuilder type = new StringBuilder(); + for (int i = 0; i < _type.size(); i++) { + if(i == _type.size() - 1){ + type.append(_type.get(i)); + }else{ + type.append(_type.get(i)).append(","); + } + } + + + String str = JSONUtil.toJsonStr(param.get("sfcScrap")); + List _sfcScrapList = JSONArray.parseArray(str, SfcScrap.class); + List sfcScrapsList = new ArrayList<>(); + + + ScrapDeleteServiceInterface scrapDeleteServiceInterface = null; + //mes的公共接口 + try{ + scrapDeleteServiceInterface = MEServices.create("com.sap.me.production", "ScrapDeleteService", CommonMethods.getSite()); + }catch (Exception e){ + throw new BaseException("调用mes公共接口失败"+e.getMessage()); + } + + for (SfcScrap sfcScraps : + _sfcScrapList) { + SfcScrap sfcScrap = new SfcScrap(); + sfcScrap.setHandle(HandleEnum.SFC_SCRAP.getHandle(site,sfcScraps.getSfc())); + sfcScrap.setSite(site); + sfcScrap.setSfc(sfcScraps.getSfc()); + //设置数量用,并判断该sfc是否有效 + Sfc sfc = sfcMapper.selectById(HandleEnum.SFC.getHandle(site,sfcScrap.getSfc())); + if(sfc == null){ + throw new BaseException("该sfc不存在,不能报废"); + } + + + if(!StringUtil.isBlank(sfcScraps.getOperation())){ + String[] split = sfcScraps.getOperation().split("/"); + sfcScrap.setOperation(split[0]); + sfcScrap.setStepId(split[1]); + } + sfcScrap.setType(type.toString()); + sfcScrap.setReason(reason); + sfcScrap.setQty(sfc.getQty()); + sfcScrap.setCreatedUser(user); + sfcScrap.setCreatedDateTime(now); + sfcScrap.setModifiedUser(user); + sfcScrap.setModifiedDateTime(now); + + + + //向生产派工那边发送数据 + // podTemplateService.sendErp(sfcScrap.getSfc(),sfcScrap.getStepId(),BigDecimal.valueOf(0L),BigDecimal.valueOf(sfcScrap.getQty())); + + try{ + //调用mes公共接口,报废 + ScrapSfcRequest scrapSfcRequest = new ScrapSfcRequest(); + scrapSfcRequest.setSfcRef(sfc.getHandle()); + scrapSfcRequest.setQuantity(BigDecimal.valueOf(sfcScrap.getQty())); + scrapDeleteServiceInterface.scrapSfc(scrapSfcRequest); + }catch (Exception e){ + throw new BaseException("调用mes公共接口失败"+e.getMessage()); + } + + + sfcScrapsList.add(sfcScrap); + } + //保存 + this.saveBatch(sfcScrapsList); + return sfcScrapsList; + } +} \ No newline at end of file diff --git a/production/src/main/resources/mapper/SfcScrapMapper.xml b/production/src/main/resources/mapper/SfcScrapMapper.xml new file mode 100644 index 00000000..66bce553 --- /dev/null +++ b/production/src/main/resources/mapper/SfcScrapMapper.xml @@ -0,0 +1,434 @@ + + + + + + + + + + + + + + + + + + + + + + + HANDLE, SITE, SFC, OPERATION, STEP_ID, QTY, TYPE, REASON, CREATED_USER, CREATED_DATE_TIME, MODIFIED_USER, MODIFIED_DATE_TIME + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO Z_SFC_SCRAP + + HANDLE, + SITE, + SFC, + OPERATION, + STEP_ID, + QTY, + TYPE, + REASON, + CREATED_USER, + CREATED_DATE_TIME, + MODIFIED_USER, + MODIFIED_DATE_TIME, + VALUES + + #{handle}, + #{site}, + #{sfc}, + #{operation}, + #{stepId}, + #{qty}, + #{type}, + #{reason}, + #{createdUser}, + #{createdDateTime}, + #{modifiedUser}, + #{modifiedDateTime}, + + + + + INSERT INTO Z_SFC_SCRAP + + + VALUES + + #{handle}, + #{site}, + #{sfc}, + #{operation}, + #{stepId}, + #{qty}, + #{type}, + #{reason}, + #{createdUser}, + #{createdDateTime}, + #{modifiedUser}, + #{modifiedDateTime}, + + + + + + UPDATE Z_SFC_SCRAP + SITE=#{et.site}, + SFC=#{et.sfc}, + OPERATION=#{et.operation}, + STEP_ID=#{et.stepId}, + QTY=#{et.qty}, + TYPE=#{et.type}, + REASON=#{et.reason}, + CREATED_USER=#{et.createdUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + MODIFIED_USER=#{et.modifiedUser}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, + WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL} + + + + + UPDATE Z_SFC_SCRAP + SITE=#{et.site}, + SFC=#{et.sfc}, + OPERATION=#{et.operation}, + STEP_ID=#{et.stepId}, + QTY=#{et.qty}, + TYPE=#{et.type}, + REASON=#{et.reason}, + CREATED_USER=#{et.createdUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + MODIFIED_USER=#{et.modifiedUser}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, + WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL} + + + + + UPDATE Z_SFC_SCRAP + SITE=#{et.site}, + SFC=#{et.sfc}, + OPERATION=#{et.operation}, + STEP_ID=#{et.stepId}, + QTY=#{et.qty}, + TYPE=#{et.type}, + REASON=#{et.reason}, + CREATED_USER=#{et.createdUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + MODIFIED_USER=#{et.modifiedUser}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, + + + + + HANDLE=#{ew.entity.handle} + AND SITE=#{ew.entity.site} + AND SFC=#{ew.entity.sfc} + AND OPERATION=#{ew.entity.operation} + AND STEP_ID=#{ew.entity.stepId} + AND QTY=#{ew.entity.qty} + AND TYPE=#{ew.entity.type} + AND REASON=#{ew.entity.reason} + AND CREATED_USER=#{ew.entity.createdUser} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND MODIFIED_USER=#{ew.entity.modifiedUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + DELETE FROM Z_SFC_SCRAP WHERE HANDLE=#{handle} + + + + DELETE FROM Z_SFC_SCRAP + + + + + ${k} = #{cm[${k}]} + + + + + + + + DELETE FROM Z_SFC_SCRAP + + + + + HANDLE=#{ew.entity.handle} + + AND SITE=#{ew.entity.site} + AND SFC=#{ew.entity.sfc} + AND OPERATION=#{ew.entity.operation} + AND STEP_ID=#{ew.entity.stepId} + AND QTY=#{ew.entity.qty} + AND TYPE=#{ew.entity.type} + AND REASON=#{ew.entity.reason} + AND CREATED_USER=#{ew.entity.createdUser} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND MODIFIED_USER=#{ew.entity.modifiedUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + DELETE FROM Z_SFC_SCRAP WHERE HANDLE IN ( + #{item} + ) + + + +