| | |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.apache.shiro.subject.Subject; |
| | |
| | | import org.jeecg.modules.flowable.apithird.service.FlowCommonService; |
| | | import org.jeecg.modules.flowable.service.IFlowDefinitionService; |
| | | import org.jeecg.modules.flowable.service.IFlowTaskService; |
| | | import org.jeecg.modules.tms.entity.InboundOrder; |
| | | import org.jeecg.modules.tms.entity.*; |
| | | import org.jeecg.modules.tms.entity.dto.InboundOrderFlowDto; |
| | | import org.jeecg.modules.tms.entity.vo.InboundDetailVo; |
| | | import org.jeecg.modules.tms.mapper.InboundOrderMapper; |
| | | import org.jeecg.modules.tms.service.IInboundOrderService; |
| | | import org.jeecg.modules.tms.service.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | private TaskService taskService; |
| | | @Autowired |
| | | private IFlowMyBusinessService flowMyBusinessService; |
| | | |
| | | @Autowired |
| | | private IBaseToolsService baseToolsService; |
| | | |
| | | @Autowired |
| | | private IInStoreDetailService inStoreDetailService; |
| | | |
| | | @Autowired |
| | | private IToolLedgerService toolLedgerService; |
| | | |
| | | @Autowired |
| | | private IToolLedgerDetailService toolLedgerDetailService; |
| | | @Override |
| | | public boolean submit(String id) { |
| | | InboundOrder inboundOrder = this.getById(id); |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void addInStorage(JSONObject jSONObject) { |
| | | String inStorehouseType = jSONObject.getString("inStorehouseType"); |
| | | Date inboundTime = jSONObject.getDate("inboundTime"); |
| | | //è·åå
¥åºæç» |
| | | JSONArray jsonArray = jSONObject.getJSONArray("detailData"); |
| | | List<InboundDetailVo> inStoreDetailList =jsonArray.toJavaList(InboundDetailVo.class); |
| | | //æ°è´§å
¥åº |
| | | if("1".equals(inStorehouseType)){ |
| | | //å¾ªç¯æ°å¢æç» |
| | | for(InboundDetailVo inboundDetailVo : inStoreDetailList){ |
| | | //æ¥è¯¢æ¯å¦ç®¡å°æï¼ç®¡å°æçæ¥è¯¢å½åç¼ç |
| | | BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); |
| | | //æä½åºå,æ¥è¯¢æ»åºåæ¯å¦åå¨è¯¥ç±»åå
· |
| | | ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId,inboundDetailVo.getToolCodeId()).one(); |
| | | if(toolLedger == null){ |
| | | ToolLedger newToolLedger = new ToolLedger(); |
| | | newToolLedger.setToolId(inboundDetailVo.getToolCodeId()); |
| | | newToolLedger.setAvailableCount(inboundDetailVo.getInStorageQuantity()); |
| | | newToolLedger.setTotalCount(inboundDetailVo.getInStorageQuantity()); |
| | | newToolLedger.setLendCount(BigDecimal.ZERO); |
| | | newToolLedger.setDetectionCount(BigDecimal.ZERO); |
| | | newToolLedger.setLossCount(BigDecimal.ZERO); |
| | | newToolLedger.setRepairCount(BigDecimal.ZERO); |
| | | newToolLedger.setSharpeningCount(BigDecimal.ZERO); |
| | | toolLedgerService.save(newToolLedger); |
| | | }else { |
| | | toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity())); |
| | | toolLedger.setTotalCount(toolLedger.getTotalCount().add(inboundDetailVo.getInStorageQuantity())); |
| | | toolLedgerService.updateById(toolLedger); |
| | | } |
| | | //ç®¡å°æ |
| | | if("1".equals(baseTools.getAccuracyClass())){ |
| | | //循ç¯å
¥åºæ°éï¼ä¸ºå®ç©èµç |
| | | for(int i=0;i<inboundDetailVo.getInStorageQuantity().intValue();i++){ |
| | | BaseTools newBaseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); |
| | | //æ¥è¯¢å½åç¼ç |
| | | String currentCode = newBaseTools.getCurrentCode(); |
| | | //å°å符串转æ¢ä¸ºæ´æ° |
| | | int num = Integer.parseInt(currentCode); |
| | | //å 1æä½ |
| | | num++; |
| | | //转æ¢åå符串并ä¿çåå¯¼é¶ |
| | | String result = String.format("%0" + currentCode.length() + "d", num); |
| | | //ä¿åå
¥åºæµæ°´ |
| | | InStoreDetail inStoreDetail = new InStoreDetail(); |
| | | inStoreDetail.setInboundTime(inboundTime); |
| | | inStoreDetail.setOperateType("2"); |
| | | inStoreDetail.setInNumber(BigDecimal.ONE); |
| | | inStoreDetail.setInStorehouseType("1"); |
| | | inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); |
| | | inStoreDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result); |
| | | inStoreDetailService.save(inStoreDetail); |
| | | //å¢å åºåæç» |
| | | ToolLedgerDetail toolLedgerDetail = new ToolLedgerDetail(); |
| | | toolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId()); |
| | | toolLedgerDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result); |
| | | toolLedgerDetail.setQuantity(BigDecimal.ONE); |
| | | toolLedgerDetail.setStatus("1"); |
| | | toolLedgerDetailService.save(toolLedgerDetail); |
| | | //æ´æ°å½åç¼ç |
| | | newBaseTools.setCurrentCode(result); |
| | | baseToolsService.updateById(newBaseTools); |
| | | } |
| | | //ä¸ç®¡å°æ |
| | | }else { |
| | | //ä¿åå
¥åºæµæ°´ |
| | | InStoreDetail inStoreDetail = new InStoreDetail(); |
| | | inStoreDetail.setInboundTime(inboundTime); |
| | | inStoreDetail.setOperateType("2"); |
| | | inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity()); |
| | | inStoreDetail.setInStorehouseType("1"); |
| | | inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); |
| | | inStoreDetailService.save(inStoreDetail); |
| | | //æ¥è¯¢åºåæç»ä¸æ¯å¦åå¨è¯¥å·¥å
· |
| | | ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one(); |
| | | if(toolLedgerDetail == null){ |
| | | ToolLedgerDetail newToolLedgerDetail = new ToolLedgerDetail(); |
| | | newToolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId()); |
| | | newToolLedgerDetail.setQuantity(inboundDetailVo.getInStorageQuantity()); |
| | | newToolLedgerDetail.setStatus("1"); |
| | | toolLedgerDetailService.save(newToolLedgerDetail); |
| | | }else { |
| | | toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity())); |
| | | toolLedgerDetailService.updateById(toolLedgerDetail); |
| | | } |
| | | } |
| | | } |
| | | }else if("2".equals(inStorehouseType)){ |
| | | |
| | | }else if("5".equals(inStorehouseType)){ |
| | | |
| | | } |
| | | } |
| | | |
| | | private LoginUser getCurrentUser() { |
| | | // è·åå½å认è¯çç»å½ç¨æ·ä¿¡æ¯ |
| | | Subject currentUser = SecurityUtils.getSubject(); |