From 9733594dd881627b4c00665e6f9bfbf08c1cacec Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期一, 17 二月 2025 17:49:29 +0800 Subject: [PATCH] 业务管理移植 --- inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java | 1708 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 847 insertions(+), 861 deletions(-) diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java index 4c81840..1faaee4 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java @@ -1,861 +1,847 @@ -package com.ruoyi.inspect.service.impl; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.ExcelWriter; -import com.alibaba.excel.write.metadata.WriteSheet; -import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; -import com.baomidou.mybatisplus.core.toolkit.StringUtils; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.basic.dto.FactoryDto; -import com.ruoyi.basic.dto.LaboratoryDto; -import com.ruoyi.inspect.dto.RawMaterialStandardTreeDto; -import com.ruoyi.basic.dto.SampleTypeDto; -import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper; -import com.ruoyi.basic.mapper.StandardTreeMapper; -import com.ruoyi.inspect.pojo.InsOrder; -import com.ruoyi.inspect.service.InsOrderService; -import com.ruoyi.inspect.service.RawMaterialOrderService; -import com.ruoyi.common.numgen.NumberGenerator; -import com.ruoyi.framework.exception.ErrorException; -import com.ruoyi.system.mapper.UserMapper; -import lombok.AllArgsConstructor; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.math.BigDecimal; -import java.net.URLEncoder; -import java.text.SimpleDateFormat; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.*; -import java.util.concurrent.atomic.AtomicInteger; - -/** - * @Author zhuo - * @Date 2024/7/31 - */ -@Service -@AllArgsConstructor -public class RawMaterialOrderServiceImpl implements RawMaterialOrderService { - - private StandardTreeMapper standardTreeMapper; - private IfsInventoryQuantityMapper ifsInventoryQuantityMapper; - private GetLook getLook; - private UserMapper userMapper; - private InsOrderService insOrderService; - private InsOrderMapper insOrderMapper; - private InsSampleMapper insSampleMapper; - private final NumberGenerator<InsOrder> numberGenerator; - private InsReportService insReportService; - private WechatProperty wechatProperty; - private ThreadPoolTaskExecutor threadPoolTaskExecutor; - private InsProductMapper insProductMapper; - private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper; - - - @Override - public RawMaterialStandardTreeDto selectStandardTreeListByPartNo(String partNo) { - if (StringUtils.isBlank(partNo)) { - throw new ErrorException("闆朵欢鍙蜂涪澶�"); - } - List<FactoryDto> factoryDtos = standardTreeMapper.selectStandardTreeListByPartNo(partNo); - if (CollectionUtil.isEmpty(factoryDtos)) { - throw new ErrorException("闆朵欢鍙蜂负" + partNo + "鐨勫師鏉愭枡娌℃湁瀵瑰簲鐨勬爣鍑嗗簱閰嶇疆"); - } - RawMaterialStandardTreeDto rawMaterialStandardTreeDto = new RawMaterialStandardTreeDto(); - for (FactoryDto factoryDto : factoryDtos) { - for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) { - for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) { - if (sampleTypeDto.getChildren().size() == 0) { - sampleTypeDto.setChildren(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue())); - } - // 鍒ゆ柇缁戝畾鐨勬槸鍚︽槸褰撳墠闆朵欢鍙� - if (sampleTypeDto.getPartNo() != null && sampleTypeDto.getPartNo().equals(partNo)) { - // 娣诲姞瀵硅薄 - rawMaterialStandardTreeDto.setTreeName(factoryDto.getValue() + "-" - + laboratoryDto.getValue() + "-" - + sampleTypeDto.getValue()); - rawMaterialStandardTreeDto.setCode(sampleTypeDto.getCode()); - rawMaterialStandardTreeDto.setLabel(sampleTypeDto.getLabel()); - rawMaterialStandardTreeDto.setValue(sampleTypeDto.getValue()); - rawMaterialStandardTreeDto.setChildren1(sampleTypeDto.getChildren()); - } else { - for (SampleDto sampleDto : sampleTypeDto.getChildren()) { - if (sampleDto.getPartNo() != null && sampleDto.getPartNo().equals(partNo)) { - // 娣诲姞瀵硅薄 - rawMaterialStandardTreeDto.setTreeName(factoryDto.getValue() + "-" - + laboratoryDto.getValue() + "-" - + sampleTypeDto.getValue() + "-" - + sampleDto.getValue()); - rawMaterialStandardTreeDto.setCode(sampleDto.getCode()); - rawMaterialStandardTreeDto.setLabel(sampleDto.getLabel()); - rawMaterialStandardTreeDto.setValue(sampleDto.getValue()); - rawMaterialStandardTreeDto.setChildren2(sampleDto.getChildren()); - } - } - } - } - } - } - return rawMaterialStandardTreeDto; - } - - @Override - public Map<String, Object> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) { - Map<String, Object> map = new HashMap<>(); - map.put("head", PrintChina.printChina(IfsInventoryQuantity.class)); - map.put("body", standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity))); - return map; - } - - @Override - public Map<String, Object> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto) { - Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("getIfsByStateOne"); - if (map1.get("look") == 1) { - //涓汉 - ifsInventoryQuantityDto.setCreateUser(map1.get("userId")); - } - Map<String, Object> map = new HashMap<>(); -// ifsInventoryQuantityDto.setOrderState(null); - map.put("head", PrintChina.printChina(IfsInventoryQuantityDto.class)); - map.put("body", standardTreeMapper.getIfsByStateOne(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto))); - return map; - } - - - /** - * 鎶ユ - * @param ids - * @return - */ - @Override - public int inspectionReport(List<Integer> ids) { - Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); - ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate() - .in(IfsInventoryQuantity::getId, ids) - .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName()) - .set(IfsInventoryQuantity::getDeclareUserId, userId) - .set(IfsInventoryQuantity::getIsInspect, 1) - .set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now()) - ); - threadPoolTaskExecutor.execute(() -> { - List<IfsInventoryQuantity> quantityList = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery() - .in(IfsInventoryQuantity::getId, ids)); - // 浼佷笟寰俊閫氱煡 - String message = ""; - message += "鏂板鎶ユ閫氱煡"; - for (IfsInventoryQuantity inventoryQuantity : quantityList) { - message += "\n鎵规鍙�: " + inventoryQuantity.getUpdateBatchNo(); - message += "\n闆朵欢鎻忚堪: " + inventoryQuantity.getPartDesc(); - message += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas(); - - // 鍒ゆ柇鏈夋病鏈夊埌20鍚�. 鎴栬�呰兘鍚﹀厤妫� - int result = notificationRawOrder(inventoryQuantity.getId()); - switch (result) { - case 1: - message += "\n褰撳墠鏍峰搧宸叉楠岃繃, 鍙互鍏嶆"; - break; - case 2: - message += "\n褰撳墠鏍峰搧宸茶秴杩�20鍚�"; - break; - } - message += "\n"; - } - WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message); - }); - return 1; - } - - /** - * 鎾ら攢鎶ユ - * @param id - * @return - */ - @Override - public int revokeInspectionReport(Integer id) { - return ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate() - .eq(IfsInventoryQuantity::getId, id) - .set(IfsInventoryQuantity::getIsInspect, 0) - ); - } - - /** - * 鎵撳嵃鏍囩鏌ヨ - * @param ids - * @return - */ - @Override - public List<IfsInventoryQuantityDto> printLabel(List<Integer> ids) { - return ifsInventoryQuantityMapper.printLabel(ids); - } - - /** - * 鎶ユ - * @param ifsInventoryQuantity - * @return - */ - @Override - public int inspectionReportOne(IfsInventoryQuantity ifsInventoryQuantity) { - Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); - ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate() - .eq(IfsInventoryQuantity::getId, ifsInventoryQuantity.getId()) - .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName()) - .set(IfsInventoryQuantity::getDeclareUserId, userId) - .set(IfsInventoryQuantity::getIsInspect, 1) - .set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now()) - .set(IfsInventoryQuantity::getUpdateBatchNo, ifsInventoryQuantity.getUpdateBatchNo()) - ); - - threadPoolTaskExecutor.execute(() -> { - IfsInventoryQuantity inventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryQuantity.getId()); - // 浼佷笟寰俊閫氱煡 - String message = ""; - message += "鏂板鎶ユ閫氱煡"; - message += "\n鎵规鍙�: " + inventoryQuantity.getUpdateBatchNo(); - message += "\n闆朵欢鎻忚堪: " + inventoryQuantity.getPartDesc(); - message += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas(); - WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message); - }); - return 1; - } - - /** - * 鑾峰彇閾滀骇涓氶摼妫�娴嬫暟鎹� - * @param id - * @return - */ - @Override - public String getIndustryChain(Integer id) { - return ifsInventoryQuantityMapper.selectById(id).getIndustryChain(); - } - - /** - * 鍘熸潗鏂欐挙閿�鎺ュ彛 - * @param ifsInventoryId - * @return - */ - @Override - public boolean repealRawOrder(Integer ifsInventoryId) { - // 鏌ヨ鍒ゆ柇鏄惁鏄摐鍗曚笣 - IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId); - if (ifsInventoryQuantity.getIsCopper() != null && ifsInventoryQuantity.getIsCopper().equals(1)) { - // 閾滃崟涓濈洿鎺ュ垹闄ゅ氨琛� - ifsInventoryQuantityMapper.deleteById(ifsInventoryId); - } else { - ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() - .set(IfsInventoryQuantity::getState, 0) - .set(IfsInventoryQuantity::getIsQuarter, 1) - .eq(IfsInventoryQuantity::getId, ifsInventoryId)); - } - - insOrderService.update(Wrappers.<InsOrder>lambdaUpdate() - .eq(InsOrder::getIfsInventoryId, ifsInventoryId) - .set(InsOrder::getState, -1) - .set(InsOrder::getEntrustCode, ""));// 鎾ら攢 - return true; - } - - /** - * 鍘熸潗鏂欏厤妫�涓嬪崟 - * @param list - * @param insOrder - * @return - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int addExemptionOrder(List<SampleProductDto> list, InsOrder insOrder) { - if (!insOrder.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY)) { - throw new ErrorException("鍙湁杩涘巶妫�楠屾墠鑳藉厤妫�"); - } - insOrder.setSendTime(LocalDateTime.now()); - // 淇敼璁㈠崟琛ㄧ洿鎺ヤ负宸叉楠� - insOrder.setState(4); - insOrder.setTypeSource(1); - - String code = "Y"; - // 鐢熸垚缂栧彿 - String no = numberGenerator.generateNumberWithPrefix(3, - "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()), - InsOrder::getEntrustCode); - - insOrderMapper.insert(insOrder); // 涓昏〃 - - AtomicInteger count = new AtomicInteger(); - list.forEach(a -> { - count.getAndIncrement(); - a.setId(null); - a.setInsOrderId(insOrder.getId()); - if (StrUtil.isEmpty(a.getSampleCode())) { - // 濡傛灉鍙湁涓�涓牱鍝佸氨涓嶉渶瑕佹嫾鎺ユ暟瀛� - if (list.size() != 1) { - a.setSampleCode(no + "-" + count.get()); - } else { - a.setSampleCode(no); - } - } - insSampleMapper.insert(a); - - if (!CollectionUtil.isEmpty(a.getInsProduct())) { - throw new ErrorException("鍏嶆涓嶉渶瑕佸~鍐欐楠岄」"); - } - }); - - // 鍘熸潗鏂欎笅鍗�: 濮旀墭浜哄氨鏄姤妫�浜�, 鐢熶骇鍗曚綅灏辨槸渚涘簲鍟嗗崟浣� - IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId()); - Integer declareUserId = ifsInventoryQuantity.getDeclareUserId(); - User user = userMapper.selectById(declareUserId); - // 渚涘簲鍟嗗悕绉� - insOrder.setProduction(ifsInventoryQuantity.getSupplierName()); - // 濮旀墭浜哄悕绉� - insOrder.setPrepareUser(user.getName()); - insOrder.setPhone(user.getPhone()); - - // 淇敼鍘熸潗鏂欐暟鎹洿鎺ヤ负宸叉楠� - ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>().set(IfsInventoryQuantity::getState, 2) - .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId())); - - insOrder.setExamineTime(LocalDateTime.now()); - - insOrder.setEntrustCode(no); - insOrder.setIsExemption(1); - - insOrderMapper.updateById(insOrder); - - // 娣诲姞宸ユ椂 - addAuxiliary(insOrder, ifsInventoryQuantity); - - // todo: ifs鐩存帴绉诲簱 - insReportService.isRawMaterial(insOrder); - - return insOrder.getId(); - } - - - /** - * 鏌ヨ寰呬笅鍗� - * @param page - * @param ifsInventoryQuantity - * @return - */ - @Override - public Map<String, Object> selectIfsInventoryQuantity(Page<IfsInventoryQuantityCheckDto> page, IfsInventoryQuantityCheckDto ifsInventoryQuantity) { - Map<String, Object> map = new HashMap<>(); - map.put("head", PrintChina.printChina(IfsInventoryQuantityCheckDto.class)); - map.put("body", standardTreeMapper.selectIfsInventoryQuantity(page, QueryWrappers.queryWrappers(ifsInventoryQuantity))); - return map; - } - - /** - * 鏌ヨ宸叉楠� - * @param page - * @param ifsInventoryQuantityDto - * @return - */ - @Override - public Map<String, Object> getIfsByOver(Page<IfsInventoryQuantitySupplierDto> page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) { - Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("getIfsByStateOne"); - if (map1.get("look") == 1) { - //涓汉 - ifsInventoryQuantityDto.setCreateUser(map1.get("userId")); - } - String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate(); - String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate(); - ifsInventoryQuantityDto.setBeginDeclareDate(null); - ifsInventoryQuantityDto.setEndDeclareDate(null); - - Map<String, Object> map = new HashMap<>(); - map.put("head", PrintChina.printChina(IfsInventoryQuantitySupplierDto.class)); - map.put("body", standardTreeMapper.getIfsByOver(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate)); - return map; - } - - /** - * 鍒犻櫎鍘熸潗鏂欐姤妫�淇℃伅 - * @param id - * @return - */ - @Override - public int delIfsInventory(Integer id) { - return ifsInventoryQuantityMapper.deleteById(id); - } - - /** - * 鍘熸潗鏂欐斁琛屽厤妫� - * @param ifsInventoryId - * @return - */ - @Override - @Transactional(rollbackFor = Exception.class) - public boolean rawOrderRelease(Integer ifsInventoryId, String partDetail) { - // 淇敼鍘熸潗鏂欐暟鎹洿鎺ヤ负宸叉楠� - ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() - .set(IfsInventoryQuantity::getState, 2) - .set(IfsInventoryQuantity::getIsQuarter, 0) - .eq(IfsInventoryQuantity::getId, ifsInventoryId)); - - // 鏌ヨ鍘熸潗鏂欎俊鎭� - IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId); - // 濮旀墭浜哄氨鏄姤妫�浜�, 鐢熶骇鍗曚綅灏辨槸渚涘簲鍟嗗崟浣� - Integer declareUserId = ifsInventoryQuantity.getDeclareUserId(); - User user = userMapper.selectById(declareUserId); - - InsOrder insOrder = new InsOrder(); - insOrder.setState(4); - insOrder.setTypeSource(1); - String code = "Y"; - // 鐢熸垚缂栧彿 - String no = numberGenerator.generateNumberWithPrefix(3, - "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()), - InsOrder::getEntrustCode); - insOrder.setExamineTime(LocalDateTime.now()); - insOrder.setEntrustCode(no); - insOrder.setIsExemption(1); - // 渚涘簲鍟嗗悕绉� - insOrder.setProduction(ifsInventoryQuantity.getSupplierName()); - // 濮旀墭浜哄悕绉� - insOrder.setPrepareUser(user.getName()); - insOrder.setPhone(user.getPhone()); - insOrder.setIfsInventoryId(ifsInventoryId); - insOrder.setPartDetail(partDetail); - insOrder.setSendTime(LocalDateTime.now()); - insOrder.setSample(ifsInventoryQuantity.getPartDesc()); - // 杩涘巶妫�楠� - insOrder.setOrderType(InsOrderTypeConstants.ENTER_THE_FACTORY); - - insOrderMapper.insert(insOrder); - - // 娣诲姞宸ユ椂 - addAuxiliary(insOrder, ifsInventoryQuantity); - - // todo: ifs鐩存帴绉诲簱 - insReportService.isRawMaterial(insOrder); - return true; - } - - /** - * 0, 鏃犳彁绀�, 1鎻愮ず 褰撳墠鎵规鐨勬牱鍝佸凡妫�楠岃繃, 鍙互鍏嶆, 2 鎻愮ず 褰撳墠鎵规鐨勬牱鍝佸凡瓒�20鍚�, 闇�瑕佸绾у娆℃楠� - * - * 鍘熸潗鏂欎笅鍗曢�氱煡鍏嶆鎴栬�呭娆℃楠� - * @param ifsInventoryId - * @return - */ - @Override - public int notificationRawOrder(Integer ifsInventoryId) { - IfsInventoryQuantity ifsInventory = ifsInventoryQuantityMapper.selectById(ifsInventoryId); - // 鏌ヨ褰撳墠鎵规, 渚涘簲鍟�, 闆朵欢鍙风殑鍘熸潗鏂欐槸鍚﹁秴杩囦簡20鍚�, 瓒呰繃浜�20鍚ㄩ渶瑕佽繘琛屽娆℃楠屾彁閱� - List<IfsInventoryQuantity> quantityList = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery() - .eq(IfsInventoryQuantity::getPartNo, ifsInventory.getPartNo()) - .eq(IfsInventoryQuantity::getUpdateBatchNo, ifsInventory.getUpdateBatchNo()) - .eq(IfsInventoryQuantity::getSupplierId, ifsInventory.getSupplierId()) - .eq(IfsInventoryQuantity::getSupplierName, ifsInventory.getSupplierName())); - - // 鍒ゆ柇鏄惁澶т簬20鍚� - BigDecimal bigDecimal = new BigDecimal("20000"); - BigDecimal count = BigDecimal.ZERO; - for (IfsInventoryQuantity inventoryQuantity : quantityList) { - // 鍒ゆ柇鍗曚綅鏄痥g鎴栬�卼 - if (inventoryQuantity.getBuyUnitMeas().equalsIgnoreCase("t")) { - count = count.add(inventoryQuantity.getQtyArrived().multiply(new BigDecimal("1000"))); - } else if (inventoryQuantity.getBuyUnitMeas().equalsIgnoreCase("kg")) { - count = count.add(inventoryQuantity.getQtyArrived()); - } - } - - if (count.compareTo(bigDecimal) >= 0) { - return 2; - } else { - // 鍒ゆ柇涔嬪墠鏄惁鍑鸿繃鎶ュ憡, 鍑鸿繃鎶ュ憡鍙互鍏嶆 - int reportCount = ifsInventoryQuantityMapper.selectReportCountById(ifsInventoryId); - if (reportCount > 0) { - return 1; - } - } - return 0; - } - - /** - * 鎶ユ鍙互鏂板鎶ユ淇℃伅 - * @param ifsInventoryQuantity - */ - @Override - public void addIfsInventoryQuantity(IfsInventoryQuantity ifsInventoryQuantity) { - ifsInventoryQuantity.setIsSource(0); - ifsInventoryQuantity.setState(0); - ifsInventoryQuantity.setIsFinish(0); - ifsInventoryQuantityMapper.insert(ifsInventoryQuantity); - } - - @Override - public void shiftingParking(List<Integer> ids) { - for (Integer id : ids) { - InsOrder order = insOrderService.getById(id); - // todo: ifs鐩存帴绉诲簱 - insReportService.isRawMaterial(order); - } - } - - /** - * 閾滃崟涓濅笅鍗曞厤妫� - * @param list - * @param insOrder - */ - @Override - @Transactional(rollbackFor = Exception.class) - public int addRawCopperOrderExemptionOrder(List<SampleProductDto> list, CopperInsOrderDto insOrder) { - if (!insOrder.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY)) { - throw new ErrorException("鍙湁杩涘巶妫�楠屾墠鑳藉厤妫�"); - } - insOrder.setSendTime(LocalDateTime.now()); - // 淇敼璁㈠崟琛ㄧ洿鎺ヤ负宸叉楠� - insOrder.setState(4); - insOrder.setTypeSource(1); - - String code = "Y"; - // 鐢熸垚缂栧彿 - String no = numberGenerator.generateNumberWithPrefix(3, - "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()), - InsOrder::getEntrustCode); - - insOrderMapper.insert(insOrder); // 涓昏〃 - - AtomicInteger count = new AtomicInteger(); - list.forEach(a -> { - count.getAndIncrement(); - a.setId(null); - a.setInsOrderId(insOrder.getId()); - if (StrUtil.isEmpty(a.getSampleCode())) { - // 濡傛灉鍙湁涓�涓牱鍝佸氨涓嶉渶瑕佹嫾鎺ユ暟瀛� - if (list.size() != 1) { - a.setSampleCode(no + "-" + count.get()); - } else { - a.setSampleCode(no); - } - } - insSampleMapper.insert(a); - - if (!CollectionUtil.isEmpty(a.getInsProduct())) { - throw new ErrorException("鍏嶆涓嶉渶瑕佸~鍐欐楠岄」"); - } - }); - // 娣诲姞鍘熸潗鏂欎俊鎭� - IfsInventoryQuantity ifsInventoryQuantity = new IfsInventoryQuantity(); - // 鍩烘湰淇℃伅 - ifsInventoryQuantity.setIsSource(0); - ifsInventoryQuantity.setState(2); - ifsInventoryQuantity.setIsInspect(1); - ifsInventoryQuantity.setIsFinish(1); - ifsInventoryQuantity.setIsCopper(1); - ifsInventoryQuantity.setInspectStatus(1); - ifsInventoryQuantity.setIsQuarter(0); - - ifsInventoryQuantity.setQtyArrived(insOrder.getQtyArrived()); - ifsInventoryQuantity.setBuyUnitMeas(insOrder.getBuyUnitMeas()); - ifsInventoryQuantity.setSupplierName(insOrder.getSupplierName()); - ifsInventoryQuantity.setUpdateBatchNo(insOrder.getUpdateBatchNo()); - ifsInventoryQuantity.setDeclareDate(insOrder.getDeclareDate()); - - ifsInventoryQuantityMapper.insert(ifsInventoryQuantity); - - insOrder.setIfsInventoryId(ifsInventoryQuantity.getId()); - insOrder.setExamineTime(LocalDateTime.now()); - - insOrder.setEntrustCode(no); - insOrder.setIsExemption(1); - - insOrderMapper.updateById(insOrder); - - // 娣诲姞宸ユ椂 - addAuxiliary(insOrder, ifsInventoryQuantity); - - return insOrder.getId(); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public boolean concessionRelease(Integer ifsInventoryId) { - // 鏌ヨ鍘熸潗鏂欎俊鎭� - IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId); - if (!ifsInventoryQuantity.getInspectStatus().equals(2)) { - throw new ErrorException("涓嶅悎鏍肩殑鍘熸潗鏂欐墠鑳借姝ユ斁琛�"); - } - - // todo:闇�瑕佸垽鏂璷a娴佺▼鏄惁鏄姝ユ斁琛� - String toLocation = insReportService.moveRawMaterial(ifsInventoryQuantity); - - ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() - .set(IfsInventoryQuantity::getInspectStatus, 4) - .set(IfsInventoryQuantity::getToLocation, toLocation) - .eq(IfsInventoryQuantity::getId, ifsInventoryId)); - - return true; - } - - /** - * 鍘熸潗鏂欒繘鍘傛挙閿�涓嬪崟 - * @param enterOrderId - * @return - */ - @Override - @Transactional(rollbackFor = Exception.class) - public boolean repealEnterRawOrder(Integer enterOrderId) { - // 鏌ヨ璁㈠崟 - InsOrder order = insOrderMapper.selectById(enterOrderId); - - // 鏌ヨ鍒ゆ柇鏄惁鏄摐鍗曚笣 - IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId()); - if (ifsInventoryQuantity.getIsCopper() != null && ifsInventoryQuantity.getIsCopper().equals(1)) { - // 閾滃崟涓濈洿鎺ュ垹闄ゅ氨琛� - ifsInventoryQuantityMapper.deleteById(order.getIfsInventoryId()); - } else { - ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() - .set(IfsInventoryQuantity::getState, 0) - .set(IfsInventoryQuantity::getIsQuarter, 1) - .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId())); - } - insOrderService.update(Wrappers.<InsOrder>lambdaUpdate() - .eq(InsOrder::getId, enterOrderId) - .set(InsOrder::getState, -1) - .set(InsOrder::getEntrustCode, ""));// 鎾ら攢 - - // 娓呴櫎涔嬪墠鐨勫伐鏃� - auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getOrderId, enterOrderId)); - - // 娓呴櫎涔嬪墠鎶ュ憡 - insReportService.remove(Wrappers.<InsReport>lambdaQuery() - .eq(InsReport::getInsOrderId, enterOrderId)); - - return true; - } - - /** - * 鍘熸潗鏂欏搴︽挙閿�涓嬪崟 - * @param quarterOrderId - * @return - */ - @Override - @Transactional(rollbackFor = Exception.class) - public boolean repealQuarterRawOrder(Integer quarterOrderId) { - // 鏌ヨ璁㈠崟 - InsOrder order = insOrderMapper.selectById(quarterOrderId); - - Long count = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery() - .eq(InsOrder::getIfsInventoryId, order.getIfsInventoryId()) - .ne(InsOrder::getState, -1) - .eq(InsOrder::getOrderType, InsOrderTypeConstants.ENTER_THE_FACTORY) - .ne(InsOrder::getId, order.getId())); - // 鍒ゆ柇涔嬪墠鏄惁鏈夎繘鍘傛楠�, 娌℃湁闇�瑕佷慨鏀瑰師鏉愭枡淇℃伅 - if (count == 0) { - ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() - .set(IfsInventoryQuantity::getState, 0) - .set(IfsInventoryQuantity::getIsQuarter, 1) - .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId())); - } else { - ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() - .set(IfsInventoryQuantity::getIsQuarter, 1) - .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId())); - } - - insOrderService.update(Wrappers.<InsOrder>lambdaUpdate() - .eq(InsOrder::getId, quarterOrderId) - .set(InsOrder::getState, -1) - .set(InsOrder::getEntrustCode, ""));// 鎾ら攢 - auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getOrderId, quarterOrderId)); - // 娓呴櫎涔嬪墠鎶ュ憡 - insReportService.remove(Wrappers.<InsReport>lambdaQuery() - .eq(InsReport::getInsOrderId, quarterOrderId)); - return true; - } - - /** - * 鍘熸潗鏂欐姤妫�鍏ㄩ儴淇℃伅瀵煎嚭 - * @param ifsInventoryQuantityDto - * @param response - */ - @Override - public void rawAllExport(IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto, HttpServletResponse response) throws UnsupportedEncodingException { - //鏌ヨ瀵煎嚭鐨勮垂鐢ㄧ粺璁℃暟鎹� - String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate(); - String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate(); - ifsInventoryQuantityDto.setBeginDeclareDate(null); - ifsInventoryQuantityDto.setEndDeclareDate(null); - List<IfsInventoryQuantitySupplierDto> ifsByOverList = standardTreeMapper.getIfsByOverList(QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate); - - for (IfsInventoryQuantitySupplierDto dto : ifsByOverList) { - dto.setSendTimeString(dto.getSendTime() == null ? "" : dto.getSendTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - dto.setReceiverDateString(dto.getReceiverDate() == null ? "" : dto.getReceiverDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - dto.setDeclareDateString(dto.getDeclareDate() == null ? "" : dto.getDeclareDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - switch (dto.getInspectStatus()) { - case 1: - dto.setInspectStatusString("鍚堟牸"); - break; - case 2: - dto.setInspectStatusString("涓嶅悎鏍�"); - // 鏌ヨ涓嶅悎鏍奸」 - List<String> unqualifiedList = insProductMapper.selectUnqualifiedList(dto.getEnterOrderId() == null ? dto.getQuarterOrderId() : dto.getEnterOrderId()); - dto.setUnqualifiedItem(CollUtil.join(unqualifiedList, ",")); - break; - case 3: - dto.setInspectStatusString("鏈笅鍗�"); - break; - case 4: - dto.setInspectStatusString("璁╂鏀捐"); - break; - case 0: - dto.setInspectStatusString("妫�楠屼腑"); - break; - - } - } - - - response.setContentType("application/vnd.ms-excel"); - response.setCharacterEncoding("UTF-8"); - // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 - String fileName = URLEncoder.encode("鍘熸潗鏂欐娴嬩俊鎭鍑�", "UTF-8"); - response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); - try { - //鏂板缓ExcelWriter - ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); - //鑾峰彇sheet0瀵硅薄 - WriteSheet mainSheet = EasyExcel.writerSheet(0, "鍘熸潗鏂欐娴嬩俊鎭鍑�").head(IfsInventoryQuantitySupplierDto.class).build(); - - //鍚憇heet0鍐欏叆鏁版嵁 浼犲叆绌簂ist杩欐牱鍙鍑鸿〃澶� - excelWriter.write(ifsByOverList, mainSheet); - //鍏抽棴娴� - excelWriter.finish(); - } catch (IOException e) { - throw new RuntimeException("瀵煎嚭澶辫触"); - } - } - - /** - * 鍘熸潗鏂欐煡璇㈠彲浠ュ搴︽楠岀殑鍐呭 - * @param page - * @param ifsInventoryQuantityDto - * @return - */ - @Override - public Map<String, Object> getIfsByQuarter(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) { - Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("getIfsByStateOne"); - if (map1.get("look") == 1) { - //涓汉 - ifsInventoryQuantityDto.setCreateUser(map1.get("userId")); - } - String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate(); - String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate(); - ifsInventoryQuantityDto.setBeginDeclareDate(null); - ifsInventoryQuantityDto.setEndDeclareDate(null); - - Map<String, Object> map = new HashMap<>(); - map.put("head", PrintChina.printChina(IfsInventoryQuantitySupplierDto.class)); - map.put("body", standardTreeMapper.getIfsByQuarter(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate)); - return map; - } - - /** - * 鎻愬墠鍏ュ簱 - * @param ifsInventoryId - * @return - */ - @Override - public boolean advancedGodown(Integer ifsInventoryId) { - // 鏌ヨ鍘熸潗鏂欎俊鎭� - IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId); - if (!ifsInventoryQuantity.getInspectStatus().equals(0) - && !ifsInventoryQuantity.getInspectStatus().equals(3)) { - throw new ErrorException("鏈娴嬪畬鎴愭暟鎹墠鑳芥彁鍓嶅叆搴�"); - } - - // todo:闇�瑕佸垽鏂璷a娴佺▼鏄惁鏄姝ユ斁琛� - String toLocation = insReportService.moveRawMaterial(ifsInventoryQuantity); - - ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() - .set(IfsInventoryQuantity::getInspectStatus, 1) - .set(IfsInventoryQuantity::getIsFinish, 1) - .set(IfsInventoryQuantity::getToLocation, toLocation) - .eq(IfsInventoryQuantity::getId, ifsInventoryId)); - - return true; - } - - - /** - * 娣诲姞宸ユ椂 - * @param insOrder - * @param ifsInventoryQuantity - */ - private void addAuxiliary(InsOrder insOrder, IfsInventoryQuantity ifsInventoryQuantity) { - AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); - auxiliaryOutputWorkingHours.setInspectionItemClass(ifsInventoryQuantity.getUpdateBatchNo() + "鍏嶆");//妫�娴嬮」鍒嗙被 - auxiliaryOutputWorkingHours.setSample(insOrder.getEntrustCode());//鏍峰搧缂栧彿 - auxiliaryOutputWorkingHours.setOrderId(insOrder.getId());//璁㈠崟id - auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� - - // 鍏嶆榛樿2 - auxiliaryOutputWorkingHours.setWorkTime(new BigDecimal("2"));//闈炲姞鐝伐鏃� - auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� - auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : BigDecimal.ZERO));//浜ч噺宸ユ椂 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 - LocalDateTime localDateTime = LocalDateTime.now(); - DateTime parse = DateUtil.parse(localDateTime.format(formatter)); - auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 - auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ - auxiliaryOutputWorkingHours.setCheck(getLook.selectPowerByMethodAndUserId(null).get("userId"));//妫�娴嬩汉 - auxiliaryOutputWorkingHours.setPrice(new BigDecimal("1"));//鍗曚环 - - auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); - } - - public static String getWeek(String dayStr) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - try { - Date date = sdf.parse(dayStr); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); - int day = calendar.get(Calendar.DAY_OF_MONTH); - return getWeekDay(dayOfWeek); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - public static String getWeekDay(int dayOfWeek) { - switch (dayOfWeek) { - case Calendar.MONDAY: - return "鍛ㄤ竴"; - case Calendar.TUESDAY: - return "鍛ㄤ簩"; - case Calendar.WEDNESDAY: - return "鍛ㄤ笁"; - case Calendar.THURSDAY: - return "鍛ㄥ洓"; - case Calendar.FRIDAY: - return "鍛ㄤ簲"; - case Calendar.SATURDAY: - return "鍛ㄥ叚"; - case Calendar.SUNDAY: - return "鍛ㄦ棩"; - default: - return "鏈煡"; - } - } -} +//package com.ruoyi.inspect.service.impl; +// +//import cn.hutool.core.collection.CollUtil; +//import cn.hutool.core.collection.CollectionUtil; +//import cn.hutool.core.date.DateTime; +//import cn.hutool.core.date.DateUtil; +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.excel.EasyExcel; +//import com.alibaba.excel.ExcelWriter; +//import com.alibaba.excel.write.metadata.WriteSheet; +//import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +//import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +//import com.baomidou.mybatisplus.core.metadata.IPage; +//import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +//import com.baomidou.mybatisplus.core.toolkit.StringUtils; +//import com.baomidou.mybatisplus.core.toolkit.Wrappers; +//import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +//import com.ruoyi.basic.dto.*; +//import com.ruoyi.basic.pojo.IfsInventoryQuantity; +//import com.ruoyi.common.constant.InsOrderTypeConstants; +//import com.ruoyi.common.core.domain.entity.User; +//import com.ruoyi.common.utils.LimsDateUtil; +//import com.ruoyi.common.utils.QueryWrappers; +//import com.ruoyi.common.utils.SecurityUtils; +//import com.ruoyi.common.utils.WxCpUtils; +//import com.ruoyi.framework.properties.WechatProperty; +//import com.ruoyi.inspect.dto.CopperInsOrderDto; +//import com.ruoyi.inspect.dto.RawMaterialStandardTreeDto; +//import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper; +//import com.ruoyi.basic.mapper.StandardTreeMapper; +//import com.ruoyi.inspect.dto.SampleProductDto; +//import com.ruoyi.inspect.mapper.InsOrderMapper; +//import com.ruoyi.inspect.mapper.InsProductMapper; +//import com.ruoyi.inspect.mapper.InsSampleMapper; +//import com.ruoyi.inspect.pojo.InsOrder; +//import com.ruoyi.inspect.pojo.InsReport; +//import com.ruoyi.inspect.service.InsOrderService; +//import com.ruoyi.inspect.service.InsReportService; +//import com.ruoyi.inspect.service.RawMaterialOrderService; +//import com.ruoyi.common.numgen.NumberGenerator; +//import com.ruoyi.framework.exception.ErrorException; +//import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper; +//import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours; +//import com.ruoyi.system.mapper.UserMapper; +//import lombok.AllArgsConstructor; +//import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +//import org.springframework.stereotype.Service; +//import org.springframework.transaction.annotation.Transactional; +// +//import javax.servlet.http.HttpServletResponse; +//import java.io.IOException; +//import java.io.UnsupportedEncodingException; +//import java.math.BigDecimal; +//import java.net.URLEncoder; +//import java.text.SimpleDateFormat; +//import java.time.LocalDateTime; +//import java.time.format.DateTimeFormatter; +//import java.util.*; +//import java.util.concurrent.atomic.AtomicInteger; +// +///** +// * @Author zhuo +// * @Date 2024/7/31 +// */ +//@Service +//@AllArgsConstructor +//public class RawMaterialOrderServiceImpl implements RawMaterialOrderService { +// +// private StandardTreeMapper standardTreeMapper; +// private IfsInventoryQuantityMapper ifsInventoryQuantityMapper; +// private UserMapper userMapper; +// private InsOrderService insOrderService; +// private InsOrderMapper insOrderMapper; +// private InsSampleMapper insSampleMapper; +// private final NumberGenerator<InsOrder> numberGenerator; +// private InsReportService insReportService; +// private WechatProperty wechatProperty; +// private ThreadPoolTaskExecutor threadPoolTaskExecutor; +// private InsProductMapper insProductMapper; +// private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper; +// +// +// @Override +// public RawMaterialStandardTreeDto selectStandardTreeListByPartNo(String partNo) { +// if (StringUtils.isBlank(partNo)) { +// throw new ErrorException("闆朵欢鍙蜂涪澶�"); +// } +// List<FactoryDto> factoryDtos = standardTreeMapper.selectStandardTreeListByPartNo(partNo); +// if (CollectionUtil.isEmpty(factoryDtos)) { +// throw new ErrorException("闆朵欢鍙蜂负" + partNo + "鐨勫師鏉愭枡娌℃湁瀵瑰簲鐨勬爣鍑嗗簱閰嶇疆"); +// } +// RawMaterialStandardTreeDto rawMaterialStandardTreeDto = new RawMaterialStandardTreeDto(); +// for (FactoryDto factoryDto : factoryDtos) { +// for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) { +// for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) { +// if (sampleTypeDto.getChildren().size() == 0) { +// sampleTypeDto.setChildren(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue())); +// } +// // 鍒ゆ柇缁戝畾鐨勬槸鍚︽槸褰撳墠闆朵欢鍙� +// if (sampleTypeDto.getPartNo() != null && sampleTypeDto.getPartNo().equals(partNo)) { +// // 娣诲姞瀵硅薄 +// rawMaterialStandardTreeDto.setTreeName(factoryDto.getValue() + "-" +// + laboratoryDto.getValue() + "-" +// + sampleTypeDto.getValue()); +// rawMaterialStandardTreeDto.setCode(sampleTypeDto.getCode()); +// rawMaterialStandardTreeDto.setLabel(sampleTypeDto.getLabel()); +// rawMaterialStandardTreeDto.setValue(sampleTypeDto.getValue()); +// rawMaterialStandardTreeDto.setChildren1(sampleTypeDto.getChildren()); +// } else { +// for (SampleDto sampleDto : sampleTypeDto.getChildren()) { +// if (sampleDto.getPartNo() != null && sampleDto.getPartNo().equals(partNo)) { +// // 娣诲姞瀵硅薄 +// rawMaterialStandardTreeDto.setTreeName(factoryDto.getValue() + "-" +// + laboratoryDto.getValue() + "-" +// + sampleTypeDto.getValue() + "-" +// + sampleDto.getValue()); +// rawMaterialStandardTreeDto.setCode(sampleDto.getCode()); +// rawMaterialStandardTreeDto.setLabel(sampleDto.getLabel()); +// rawMaterialStandardTreeDto.setValue(sampleDto.getValue()); +// rawMaterialStandardTreeDto.setChildren2(sampleDto.getChildren()); +// } +// } +// } +// } +// } +// } +// return rawMaterialStandardTreeDto; +// } +// +// @Override +// public IPage<IfsInventoryQuantity> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) { +// return standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity)); +// } +// +// @Override +// public IPage<IfsInventoryQuantityDto> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto) { +// return standardTreeMapper.getIfsByStateOne(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto)); +// } +// +// +// /** +// * 鎶ユ +// * @param ids +// * @return +// */ +// @Override +// public int inspectionReport(List<Integer> ids) { +// Integer userId = SecurityUtils.getUserId().intValue(); +// ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate() +// .in(IfsInventoryQuantity::getId, ids) +// .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName()) +// .set(IfsInventoryQuantity::getDeclareUserId, userId) +// .set(IfsInventoryQuantity::getIsInspect, 1) +// .set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now()) +// ); +// threadPoolTaskExecutor.execute(() -> { +// List<IfsInventoryQuantity> quantityList = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery() +// .in(IfsInventoryQuantity::getId, ids)); +// // 浼佷笟寰俊閫氱煡 +// String message = ""; +// message += "鏂板鎶ユ閫氱煡"; +// for (IfsInventoryQuantity inventoryQuantity : quantityList) { +// message += "\n鎵规鍙�: " + inventoryQuantity.getUpdateBatchNo(); +// message += "\n闆朵欢鎻忚堪: " + inventoryQuantity.getPartDesc(); +// message += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas(); +// +// // 鍒ゆ柇鏈夋病鏈夊埌20鍚�. 鎴栬�呰兘鍚﹀厤妫� +// int result = notificationRawOrder(inventoryQuantity.getId()); +// switch (result) { +// case 1: +// message += "\n褰撳墠鏍峰搧宸叉楠岃繃, 鍙互鍏嶆"; +// break; +// case 2: +// message += "\n褰撳墠鏍峰搧宸茶秴杩�20鍚�"; +// break; +// } +// message += "\n"; +// } +// WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message); +// }); +// return 1; +// } +// +// /** +// * 鎾ら攢鎶ユ +// * @param id +// * @return +// */ +// @Override +// public int revokeInspectionReport(Integer id) { +// return ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate() +// .eq(IfsInventoryQuantity::getId, id) +// .set(IfsInventoryQuantity::getIsInspect, 0) +// ); +// } +// +// /** +// * 鎵撳嵃鏍囩鏌ヨ +// * @param ids +// * @return +// */ +// @Override +// public List<IfsInventoryQuantityDto> printLabel(List<Integer> ids) { +// return ifsInventoryQuantityMapper.printLabel(ids); +// } +// +// /** +// * 鎶ユ +// * @param ifsInventoryQuantity +// * @return +// */ +// @Override +// public int inspectionReportOne(IfsInventoryQuantity ifsInventoryQuantity) { +// Integer userId = SecurityUtils.getUserId().intValue(); +// ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate() +// .eq(IfsInventoryQuantity::getId, ifsInventoryQuantity.getId()) +// .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName()) +// .set(IfsInventoryQuantity::getDeclareUserId, userId) +// .set(IfsInventoryQuantity::getIsInspect, 1) +// .set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now()) +// .set(IfsInventoryQuantity::getUpdateBatchNo, ifsInventoryQuantity.getUpdateBatchNo()) +// ); +// +// threadPoolTaskExecutor.execute(() -> { +// IfsInventoryQuantity inventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryQuantity.getId()); +// // 浼佷笟寰俊閫氱煡 +// String message = ""; +// message += "鏂板鎶ユ閫氱煡"; +// message += "\n鎵规鍙�: " + inventoryQuantity.getUpdateBatchNo(); +// message += "\n闆朵欢鎻忚堪: " + inventoryQuantity.getPartDesc(); +// message += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas(); +// WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message); +// }); +// return 1; +// } +// +// /** +// * 鑾峰彇閾滀骇涓氶摼妫�娴嬫暟鎹� +// * @param id +// * @return +// */ +// @Override +// public String getIndustryChain(Integer id) { +// return ifsInventoryQuantityMapper.selectById(id).getIndustryChain(); +// } +// +// /** +// * 鍘熸潗鏂欐挙閿�鎺ュ彛 +// * @param ifsInventoryId +// * @return +// */ +// @Override +// public boolean repealRawOrder(Integer ifsInventoryId) { +// // 鏌ヨ鍒ゆ柇鏄惁鏄摐鍗曚笣 +// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId); +// if (ifsInventoryQuantity.getIsCopper() != null && ifsInventoryQuantity.getIsCopper().equals(1)) { +// // 閾滃崟涓濈洿鎺ュ垹闄ゅ氨琛� +// ifsInventoryQuantityMapper.deleteById(ifsInventoryId); +// } else { +// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() +// .set(IfsInventoryQuantity::getState, 0) +// .set(IfsInventoryQuantity::getIsQuarter, 1) +// .eq(IfsInventoryQuantity::getId, ifsInventoryId)); +// } +// +// insOrderService.update(Wrappers.<InsOrder>lambdaUpdate() +// .eq(InsOrder::getIfsInventoryId, ifsInventoryId) +// .set(InsOrder::getState, -1) +// .set(InsOrder::getEntrustCode, ""));// 鎾ら攢 +// return true; +// } +// +// /** +// * 鍘熸潗鏂欏厤妫�涓嬪崟 +// * @param list +// * @param insOrder +// * @return +// */ +// @Override +// @Transactional(rollbackFor = Exception.class) +// public int addExemptionOrder(List<SampleProductDto> list, InsOrder insOrder) { +// if (!insOrder.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY)) { +// throw new ErrorException("鍙湁杩涘巶妫�楠屾墠鑳藉厤妫�"); +// } +// insOrder.setSendTime(LocalDateTime.now()); +// // 淇敼璁㈠崟琛ㄧ洿鎺ヤ负宸叉楠� +// insOrder.setState(4); +// insOrder.setTypeSource(1); +// +// String code = "Y"; +// // 鐢熸垚缂栧彿 +// String no = numberGenerator.generateNumberWithPrefix(3, +// "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()), +// InsOrder::getEntrustCode); +// +// insOrderMapper.insert(insOrder); // 涓昏〃 +// +// AtomicInteger count = new AtomicInteger(); +// list.forEach(a -> { +// count.getAndIncrement(); +// a.setId(null); +// a.setInsOrderId(insOrder.getId()); +// if (StrUtil.isEmpty(a.getSampleCode())) { +// // 濡傛灉鍙湁涓�涓牱鍝佸氨涓嶉渶瑕佹嫾鎺ユ暟瀛� +// if (list.size() != 1) { +// a.setSampleCode(no + "-" + count.get()); +// } else { +// a.setSampleCode(no); +// } +// } +// insSampleMapper.insert(a); +// +// if (!CollectionUtil.isEmpty(a.getInsProduct())) { +// throw new ErrorException("鍏嶆涓嶉渶瑕佸~鍐欐楠岄」"); +// } +// }); +// +// // 鍘熸潗鏂欎笅鍗�: 濮旀墭浜哄氨鏄姤妫�浜�, 鐢熶骇鍗曚綅灏辨槸渚涘簲鍟嗗崟浣� +// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId()); +// Integer declareUserId = ifsInventoryQuantity.getDeclareUserId(); +// User user = userMapper.selectById(declareUserId); +// // 渚涘簲鍟嗗悕绉� +// insOrder.setProduction(ifsInventoryQuantity.getSupplierName()); +// // 濮旀墭浜哄悕绉� +// insOrder.setPrepareUser(user.getName()); +// insOrder.setPhone(user.getPhone()); +// +// // 淇敼鍘熸潗鏂欐暟鎹洿鎺ヤ负宸叉楠� +// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>().set(IfsInventoryQuantity::getState, 2) +// .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId())); +// +// insOrder.setExamineTime(LocalDateTime.now()); +// +// insOrder.setEntrustCode(no); +// insOrder.setIsExemption(1); +// +// insOrderMapper.updateById(insOrder); +// +// // 娣诲姞宸ユ椂 +// addAuxiliary(insOrder, ifsInventoryQuantity); +// +// // todo: ifs鐩存帴绉诲簱 +// insReportService.isRawMaterial(insOrder); +// +// return insOrder.getId(); +// } +// +// +// /** +// * 鏌ヨ寰呬笅鍗� +// * @param page +// * @param ifsInventoryQuantity +// * @return +// */ +// @Override +// public IPage<IfsInventoryQuantityCheckDto> selectIfsInventoryQuantity(Page<IfsInventoryQuantityCheckDto> page, IfsInventoryQuantityCheckDto ifsInventoryQuantity) { +// return standardTreeMapper.selectIfsInventoryQuantity(page, QueryWrappers.queryWrappers(ifsInventoryQuantity)); +// } +// +// /** +// * 鏌ヨ宸叉楠� +// * @param page +// * @param ifsInventoryQuantityDto +// * @return +// */ +// @Override +// public IPage<IfsInventoryQuantitySupplierDto> getIfsByOver(Page<IfsInventoryQuantitySupplierDto> page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) { +// // todo: 鍙湅鎴� +// String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate(); +// String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate(); +// ifsInventoryQuantityDto.setBeginDeclareDate(null); +// ifsInventoryQuantityDto.setEndDeclareDate(null); +// +// return standardTreeMapper.getIfsByOver(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate); +// } +// +// /** +// * 鍒犻櫎鍘熸潗鏂欐姤妫�淇℃伅 +// * @param id +// * @return +// */ +// @Override +// public int delIfsInventory(Integer id) { +// return ifsInventoryQuantityMapper.deleteById(id); +// } +// +// /** +// * 鍘熸潗鏂欐斁琛屽厤妫� +// * @param ifsInventoryId +// * @return +// */ +// @Override +// @Transactional(rollbackFor = Exception.class) +// public boolean rawOrderRelease(Integer ifsInventoryId, String partDetail) { +// // 淇敼鍘熸潗鏂欐暟鎹洿鎺ヤ负宸叉楠� +// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() +// .set(IfsInventoryQuantity::getState, 2) +// .set(IfsInventoryQuantity::getIsQuarter, 0) +// .eq(IfsInventoryQuantity::getId, ifsInventoryId)); +// +// // 鏌ヨ鍘熸潗鏂欎俊鎭� +// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId); +// // 濮旀墭浜哄氨鏄姤妫�浜�, 鐢熶骇鍗曚綅灏辨槸渚涘簲鍟嗗崟浣� +// Integer declareUserId = ifsInventoryQuantity.getDeclareUserId(); +// User user = userMapper.selectById(declareUserId); +// +// InsOrder insOrder = new InsOrder(); +// insOrder.setState(4); +// insOrder.setTypeSource(1); +// String code = "Y"; +// // 鐢熸垚缂栧彿 +// String no = numberGenerator.generateNumberWithPrefix(3, +// "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()), +// InsOrder::getEntrustCode); +// insOrder.setExamineTime(LocalDateTime.now()); +// insOrder.setEntrustCode(no); +// insOrder.setIsExemption(1); +// // 渚涘簲鍟嗗悕绉� +// insOrder.setProduction(ifsInventoryQuantity.getSupplierName()); +// // 濮旀墭浜哄悕绉� +// insOrder.setPrepareUser(user.getName()); +// insOrder.setPhone(user.getPhone()); +// insOrder.setIfsInventoryId(ifsInventoryId); +// insOrder.setPartDetail(partDetail); +// insOrder.setSendTime(LocalDateTime.now()); +// insOrder.setSample(ifsInventoryQuantity.getPartDesc()); +// // 杩涘巶妫�楠� +// insOrder.setOrderType(InsOrderTypeConstants.ENTER_THE_FACTORY); +// +// insOrderMapper.insert(insOrder); +// +// // 娣诲姞宸ユ椂 +// addAuxiliary(insOrder, ifsInventoryQuantity); +// +// // todo: ifs鐩存帴绉诲簱 +// insReportService.isRawMaterial(insOrder); +// return true; +// } +// +// /** +// * 0, 鏃犳彁绀�, 1鎻愮ず 褰撳墠鎵规鐨勬牱鍝佸凡妫�楠岃繃, 鍙互鍏嶆, 2 鎻愮ず 褰撳墠鎵规鐨勬牱鍝佸凡瓒�20鍚�, 闇�瑕佸绾у娆℃楠� +// * +// * 鍘熸潗鏂欎笅鍗曢�氱煡鍏嶆鎴栬�呭娆℃楠� +// * @param ifsInventoryId +// * @return +// */ +// @Override +// public int notificationRawOrder(Integer ifsInventoryId) { +// IfsInventoryQuantity ifsInventory = ifsInventoryQuantityMapper.selectById(ifsInventoryId); +// // 鏌ヨ褰撳墠鎵规, 渚涘簲鍟�, 闆朵欢鍙风殑鍘熸潗鏂欐槸鍚﹁秴杩囦簡20鍚�, 瓒呰繃浜�20鍚ㄩ渶瑕佽繘琛屽娆℃楠屾彁閱� +// List<IfsInventoryQuantity> quantityList = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery() +// .eq(IfsInventoryQuantity::getPartNo, ifsInventory.getPartNo()) +// .eq(IfsInventoryQuantity::getUpdateBatchNo, ifsInventory.getUpdateBatchNo()) +// .eq(IfsInventoryQuantity::getSupplierId, ifsInventory.getSupplierId()) +// .eq(IfsInventoryQuantity::getSupplierName, ifsInventory.getSupplierName())); +// +// // 鍒ゆ柇鏄惁澶т簬20鍚� +// BigDecimal bigDecimal = new BigDecimal("20000"); +// BigDecimal count = BigDecimal.ZERO; +// for (IfsInventoryQuantity inventoryQuantity : quantityList) { +// // 鍒ゆ柇鍗曚綅鏄痥g鎴栬�卼 +// if (inventoryQuantity.getBuyUnitMeas().equalsIgnoreCase("t")) { +// count = count.add(inventoryQuantity.getQtyArrived().multiply(new BigDecimal("1000"))); +// } else if (inventoryQuantity.getBuyUnitMeas().equalsIgnoreCase("kg")) { +// count = count.add(inventoryQuantity.getQtyArrived()); +// } +// } +// +// if (count.compareTo(bigDecimal) >= 0) { +// return 2; +// } else { +// // 鍒ゆ柇涔嬪墠鏄惁鍑鸿繃鎶ュ憡, 鍑鸿繃鎶ュ憡鍙互鍏嶆 +// int reportCount = ifsInventoryQuantityMapper.selectReportCountById(ifsInventoryId); +// if (reportCount > 0) { +// return 1; +// } +// } +// return 0; +// } +// +// /** +// * 鎶ユ鍙互鏂板鎶ユ淇℃伅 +// * @param ifsInventoryQuantity +// */ +// @Override +// public void addIfsInventoryQuantity(IfsInventoryQuantity ifsInventoryQuantity) { +// ifsInventoryQuantity.setIsSource(0); +// ifsInventoryQuantity.setState(0); +// ifsInventoryQuantity.setIsFinish(0); +// ifsInventoryQuantityMapper.insert(ifsInventoryQuantity); +// } +// +// @Override +// public void shiftingParking(List<Integer> ids) { +// for (Integer id : ids) { +// InsOrder order = insOrderService.getById(id); +// // todo: ifs鐩存帴绉诲簱 +// insReportService.isRawMaterial(order); +// } +// } +// +// /** +// * 閾滃崟涓濅笅鍗曞厤妫� +// * @param list +// * @param insOrder +// */ +// @Override +// @Transactional(rollbackFor = Exception.class) +// public int addRawCopperOrderExemptionOrder(List<SampleProductDto> list, CopperInsOrderDto insOrder) { +// if (!insOrder.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY)) { +// throw new ErrorException("鍙湁杩涘巶妫�楠屾墠鑳藉厤妫�"); +// } +// insOrder.setSendTime(LocalDateTime.now()); +// // 淇敼璁㈠崟琛ㄧ洿鎺ヤ负宸叉楠� +// insOrder.setState(4); +// insOrder.setTypeSource(1); +// +// String code = "Y"; +// // 鐢熸垚缂栧彿 +// String no = numberGenerator.generateNumberWithPrefix(3, +// "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()), +// InsOrder::getEntrustCode); +// +// insOrderMapper.insert(insOrder); // 涓昏〃 +// +// AtomicInteger count = new AtomicInteger(); +// list.forEach(a -> { +// count.getAndIncrement(); +// a.setId(null); +// a.setInsOrderId(insOrder.getId()); +// if (StrUtil.isEmpty(a.getSampleCode())) { +// // 濡傛灉鍙湁涓�涓牱鍝佸氨涓嶉渶瑕佹嫾鎺ユ暟瀛� +// if (list.size() != 1) { +// a.setSampleCode(no + "-" + count.get()); +// } else { +// a.setSampleCode(no); +// } +// } +// insSampleMapper.insert(a); +// +// if (!CollectionUtil.isEmpty(a.getInsProduct())) { +// throw new ErrorException("鍏嶆涓嶉渶瑕佸~鍐欐楠岄」"); +// } +// }); +// // 娣诲姞鍘熸潗鏂欎俊鎭� +// IfsInventoryQuantity ifsInventoryQuantity = new IfsInventoryQuantity(); +// // 鍩烘湰淇℃伅 +// ifsInventoryQuantity.setIsSource(0); +// ifsInventoryQuantity.setState(2); +// ifsInventoryQuantity.setIsInspect(1); +// ifsInventoryQuantity.setIsFinish(1); +// ifsInventoryQuantity.setIsCopper(1); +// ifsInventoryQuantity.setInspectStatus(1); +// ifsInventoryQuantity.setIsQuarter(0); +// +// ifsInventoryQuantity.setQtyArrived(insOrder.getQtyArrived()); +// ifsInventoryQuantity.setBuyUnitMeas(insOrder.getBuyUnitMeas()); +// ifsInventoryQuantity.setSupplierName(insOrder.getSupplierName()); +// ifsInventoryQuantity.setUpdateBatchNo(insOrder.getUpdateBatchNo()); +// ifsInventoryQuantity.setDeclareDate(insOrder.getDeclareDate()); +// +// ifsInventoryQuantityMapper.insert(ifsInventoryQuantity); +// +// insOrder.setIfsInventoryId(ifsInventoryQuantity.getId()); +// insOrder.setExamineTime(LocalDateTime.now()); +// +// insOrder.setEntrustCode(no); +// insOrder.setIsExemption(1); +// +// insOrderMapper.updateById(insOrder); +// +// // 娣诲姞宸ユ椂 +// addAuxiliary(insOrder, ifsInventoryQuantity); +// +// return insOrder.getId(); +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public boolean concessionRelease(Integer ifsInventoryId) { +// // 鏌ヨ鍘熸潗鏂欎俊鎭� +// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId); +// if (!ifsInventoryQuantity.getInspectStatus().equals(2)) { +// throw new ErrorException("涓嶅悎鏍肩殑鍘熸潗鏂欐墠鑳借姝ユ斁琛�"); +// } +// +// // todo:闇�瑕佸垽鏂璷a娴佺▼鏄惁鏄姝ユ斁琛� +// String toLocation = insReportService.moveRawMaterial(ifsInventoryQuantity); +// +// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() +// .set(IfsInventoryQuantity::getInspectStatus, 4) +// .set(IfsInventoryQuantity::getToLocation, toLocation) +// .eq(IfsInventoryQuantity::getId, ifsInventoryId)); +// +// return true; +// } +// +// /** +// * 鍘熸潗鏂欒繘鍘傛挙閿�涓嬪崟 +// * @param enterOrderId +// * @return +// */ +// @Override +// @Transactional(rollbackFor = Exception.class) +// public boolean repealEnterRawOrder(Integer enterOrderId) { +// // 鏌ヨ璁㈠崟 +// InsOrder order = insOrderMapper.selectById(enterOrderId); +// +// // 鏌ヨ鍒ゆ柇鏄惁鏄摐鍗曚笣 +// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId()); +// if (ifsInventoryQuantity.getIsCopper() != null && ifsInventoryQuantity.getIsCopper().equals(1)) { +// // 閾滃崟涓濈洿鎺ュ垹闄ゅ氨琛� +// ifsInventoryQuantityMapper.deleteById(order.getIfsInventoryId()); +// } else { +// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() +// .set(IfsInventoryQuantity::getState, 0) +// .set(IfsInventoryQuantity::getIsQuarter, 1) +// .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId())); +// } +// insOrderService.update(Wrappers.<InsOrder>lambdaUpdate() +// .eq(InsOrder::getId, enterOrderId) +// .set(InsOrder::getState, -1) +// .set(InsOrder::getEntrustCode, ""));// 鎾ら攢 +// +// // 娓呴櫎涔嬪墠鐨勫伐鏃� +// auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() +// .eq(AuxiliaryOutputWorkingHours::getOrderId, enterOrderId)); +// +// // 娓呴櫎涔嬪墠鎶ュ憡 +// insReportService.remove(Wrappers.<InsReport>lambdaQuery() +// .eq(InsReport::getInsOrderId, enterOrderId)); +// +// return true; +// } +// +// /** +// * 鍘熸潗鏂欏搴︽挙閿�涓嬪崟 +// * @param quarterOrderId +// * @return +// */ +// @Override +// @Transactional(rollbackFor = Exception.class) +// public boolean repealQuarterRawOrder(Integer quarterOrderId) { +// // 鏌ヨ璁㈠崟 +// InsOrder order = insOrderMapper.selectById(quarterOrderId); +// +// Long count = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery() +// .eq(InsOrder::getIfsInventoryId, order.getIfsInventoryId()) +// .ne(InsOrder::getState, -1) +// .eq(InsOrder::getOrderType, InsOrderTypeConstants.ENTER_THE_FACTORY) +// .ne(InsOrder::getId, order.getId())); +// // 鍒ゆ柇涔嬪墠鏄惁鏈夎繘鍘傛楠�, 娌℃湁闇�瑕佷慨鏀瑰師鏉愭枡淇℃伅 +// if (count == 0) { +// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() +// .set(IfsInventoryQuantity::getState, 0) +// .set(IfsInventoryQuantity::getIsQuarter, 1) +// .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId())); +// } else { +// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() +// .set(IfsInventoryQuantity::getIsQuarter, 1) +// .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId())); +// } +// +// insOrderService.update(Wrappers.<InsOrder>lambdaUpdate() +// .eq(InsOrder::getId, quarterOrderId) +// .set(InsOrder::getState, -1) +// .set(InsOrder::getEntrustCode, ""));// 鎾ら攢 +// auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() +// .eq(AuxiliaryOutputWorkingHours::getOrderId, quarterOrderId)); +// // 娓呴櫎涔嬪墠鎶ュ憡 +// insReportService.remove(Wrappers.<InsReport>lambdaQuery() +// .eq(InsReport::getInsOrderId, quarterOrderId)); +// return true; +// } +// +// /** +// * 鍘熸潗鏂欐姤妫�鍏ㄩ儴淇℃伅瀵煎嚭 +// * @param ifsInventoryQuantityDto +// * @param response +// */ +// @Override +// public void rawAllExport(IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto, HttpServletResponse response) throws UnsupportedEncodingException { +// //鏌ヨ瀵煎嚭鐨勮垂鐢ㄧ粺璁℃暟鎹� +// String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate(); +// String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate(); +// ifsInventoryQuantityDto.setBeginDeclareDate(null); +// ifsInventoryQuantityDto.setEndDeclareDate(null); +// List<IfsInventoryQuantitySupplierDto> ifsByOverList = standardTreeMapper.getIfsByOverList(QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate); +// +// for (IfsInventoryQuantitySupplierDto dto : ifsByOverList) { +// dto.setSendTimeString(dto.getSendTime() == null ? "" : dto.getSendTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); +// dto.setReceiverDateString(dto.getReceiverDate() == null ? "" : dto.getReceiverDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); +// dto.setDeclareDateString(dto.getDeclareDate() == null ? "" : dto.getDeclareDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); +// switch (dto.getInspectStatus()) { +// case 1: +// dto.setInspectStatusString("鍚堟牸"); +// break; +// case 2: +// dto.setInspectStatusString("涓嶅悎鏍�"); +// // 鏌ヨ涓嶅悎鏍奸」 +// List<String> unqualifiedList = insProductMapper.selectUnqualifiedList(dto.getEnterOrderId() == null ? dto.getQuarterOrderId() : dto.getEnterOrderId()); +// dto.setUnqualifiedItem(CollUtil.join(unqualifiedList, ",")); +// break; +// case 3: +// dto.setInspectStatusString("鏈笅鍗�"); +// break; +// case 4: +// dto.setInspectStatusString("璁╂鏀捐"); +// break; +// case 0: +// dto.setInspectStatusString("妫�楠屼腑"); +// break; +// +// } +// } +// +// +// response.setContentType("application/vnd.ms-excel"); +// response.setCharacterEncoding("UTF-8"); +// // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 +// String fileName = URLEncoder.encode("鍘熸潗鏂欐娴嬩俊鎭鍑�", "UTF-8"); +// response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); +// try { +// //鏂板缓ExcelWriter +// ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); +// //鑾峰彇sheet0瀵硅薄 +// WriteSheet mainSheet = EasyExcel.writerSheet(0, "鍘熸潗鏂欐娴嬩俊鎭鍑�").head(IfsInventoryQuantitySupplierDto.class).build(); +// +// //鍚憇heet0鍐欏叆鏁版嵁 浼犲叆绌簂ist杩欐牱鍙鍑鸿〃澶� +// excelWriter.write(ifsByOverList, mainSheet); +// //鍏抽棴娴� +// excelWriter.finish(); +// } catch (IOException e) { +// throw new RuntimeException("瀵煎嚭澶辫触"); +// } +// } +// +// /** +// * 鍘熸潗鏂欐煡璇㈠彲浠ュ搴︽楠岀殑鍐呭 +// * @param page +// * @param ifsInventoryQuantityDto +// * @return +// */ +// @Override +// public IPage<IfsInventoryQuantitySupplierDto> getIfsByQuarter(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) { +// +// // todo: 鍙湅鎴� +// String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate(); +// String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate(); +// ifsInventoryQuantityDto.setBeginDeclareDate(null); +// ifsInventoryQuantityDto.setEndDeclareDate(null); +// +// return standardTreeMapper.getIfsByQuarter(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate); +// } +// +// /** +// * 鎻愬墠鍏ュ簱 +// * @param ifsInventoryId +// * @return +// */ +// @Override +// public boolean advancedGodown(Integer ifsInventoryId) { +// // 鏌ヨ鍘熸潗鏂欎俊鎭� +// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId); +// if (!ifsInventoryQuantity.getInspectStatus().equals(0) +// && !ifsInventoryQuantity.getInspectStatus().equals(3)) { +// throw new ErrorException("鏈娴嬪畬鎴愭暟鎹墠鑳芥彁鍓嶅叆搴�"); +// } +// +// // todo:闇�瑕佸垽鏂璷a娴佺▼鏄惁鏄姝ユ斁琛� +// String toLocation = insReportService.moveRawMaterial(ifsInventoryQuantity); +// +// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() +// .set(IfsInventoryQuantity::getInspectStatus, 1) +// .set(IfsInventoryQuantity::getIsFinish, 1) +// .set(IfsInventoryQuantity::getToLocation, toLocation) +// .eq(IfsInventoryQuantity::getId, ifsInventoryId)); +// +// return true; +// } +// +// +// /** +// * 娣诲姞宸ユ椂 +// * @param insOrder +// * @param ifsInventoryQuantity +// */ +// private void addAuxiliary(InsOrder insOrder, IfsInventoryQuantity ifsInventoryQuantity) { +// AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); +// auxiliaryOutputWorkingHours.setInspectionItemClass(ifsInventoryQuantity.getUpdateBatchNo() + "鍏嶆");//妫�娴嬮」鍒嗙被 +// auxiliaryOutputWorkingHours.setSample(insOrder.getEntrustCode());//鏍峰搧缂栧彿 +// auxiliaryOutputWorkingHours.setOrderId(insOrder.getId());//璁㈠崟id +// auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� +// +// // 鍏嶆榛樿2 +// auxiliaryOutputWorkingHours.setWorkTime(new BigDecimal("2"));//闈炲姞鐝伐鏃� +// auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� +// auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : BigDecimal.ZERO));//浜ч噺宸ユ椂 +// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); +// DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); +// auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 +// LocalDateTime localDateTime = LocalDateTime.now(); +// DateTime parse = DateUtil.parse(localDateTime.format(formatter)); +// auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 +// auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ +// auxiliaryOutputWorkingHours.setCheck(SecurityUtils.getUserId().intValue());//妫�娴嬩汉 +// auxiliaryOutputWorkingHours.setPrice(new BigDecimal("1"));//鍗曚环 +// +// auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); +// } +// +// public static String getWeek(String dayStr) { +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); +// try { +// Date date = sdf.parse(dayStr); +// Calendar calendar = Calendar.getInstance(); +// calendar.setTime(date); +// int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); +// int day = calendar.get(Calendar.DAY_OF_MONTH); +// return getWeekDay(dayOfWeek); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return null; +// } +// +// public static String getWeekDay(int dayOfWeek) { +// switch (dayOfWeek) { +// case Calendar.MONDAY: +// return "鍛ㄤ竴"; +// case Calendar.TUESDAY: +// return "鍛ㄤ簩"; +// case Calendar.WEDNESDAY: +// return "鍛ㄤ笁"; +// case Calendar.THURSDAY: +// return "鍛ㄥ洓"; +// case Calendar.FRIDAY: +// return "鍛ㄤ簲"; +// case Calendar.SATURDAY: +// return "鍛ㄥ叚"; +// case Calendar.SUNDAY: +// return "鍛ㄦ棩"; +// default: +// return "鏈煡"; +// } +// } +//} -- Gitblit v1.9.3