server/src/main/java/doumeemes/api/business/UnqualifiedRecordController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,71 @@ package doumeemes.api.business; import doumeemes.api.BaseController; import doumeemes.core.annotation.excel.ExcelExporter; import doumeemes.core.annotation.pr.PreventRepeat; import doumeemes.core.model.ApiResponse; import doumeemes.core.model.PageWrap; import doumeemes.core.model.PageData; import doumeemes.dao.business.model.UnqualifiedRecord; import doumeemes.service.business.UnqualifiedRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** * @author æ±è¹è¹ * @since 2023/08/16 14:15 */ @Api(tags = "å·¥åç±»-æ¥å·¥ä¸è¯è®°å½ç±»å表") @RestController @RequestMapping("/business/unqualifiedRecord") public class UnqualifiedRecordController extends BaseController { @Autowired private UnqualifiedRecordService unqualifiedRecordService; @PreventRepeat @ApiOperation("æ°å»º") @PostMapping("/create") @RequiresPermissions("business:unqualifiedrecord:create") public ApiResponse create(@RequestBody UnqualifiedRecord unqualifiedRecord) { return ApiResponse.success(unqualifiedRecordService.create(unqualifiedRecord)); } @ApiOperation("æ ¹æ®IDå é¤") @GetMapping("/delete/{id}") @RequiresPermissions("business:unqualifiedrecord:delete") public ApiResponse deleteById(@PathVariable Integer id) { unqualifiedRecordService.deleteById(id); return ApiResponse.success(null); } @ApiOperation("æ ¹æ®IDä¿®æ¹") @PostMapping("/updateById") @RequiresPermissions("business:unqualifiedrecord:update") public ApiResponse updateById(@RequestBody UnqualifiedRecord unqualifiedRecord) { unqualifiedRecordService.updateById(unqualifiedRecord); return ApiResponse.success(null); } @ApiOperation("å页æ¥è¯¢") @PostMapping("/page") @RequiresPermissions("business:unqualifiedrecord:query") public ApiResponse<PageData<UnqualifiedRecord>> findPage (@RequestBody PageWrap<UnqualifiedRecord> pageWrap) { return ApiResponse.success(unqualifiedRecordService.findPage(pageWrap)); } @ApiOperation("æ ¹æ®IDæ¥è¯¢") @GetMapping("/{id}") @RequiresPermissions("business:unqualifiedrecord:query") public ApiResponse findById(@PathVariable Integer id) { return ApiResponse.success(unqualifiedRecordService.findById(id)); } } server/src/main/java/doumeemes/api/ext/CategoryExtController.java
@@ -154,6 +154,15 @@ return ApiResponse.success(categoryExtService.findPage(pageWrap)); } @ApiOperation("å表æ¥è¯¢") @PostMapping("/list") @RequiresPermissions("ext:categoryext:query") public ApiResponse<List<CategoryExtListVO>> list(@RequestBody QueryCategoryExtDTO queryCategoryExtDTO) { queryCategoryExtDTO.setDeleted(Constants.ZERO); queryCategoryExtDTO.setRootDepartId(getLoginUser().getRootDepartment().getId()); return ApiResponse.success(categoryExtService.findList(queryCategoryExtDTO)); } @ApiOperation("导åºExcel") @PostMapping("/exportExcel") @RequiresPermissions("ext:categoryext:exportExcel") server/src/main/java/doumeemes/config/shiro/ShiroRealm.java
@@ -146,9 +146,9 @@ if(cu == null){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对ä¸èµ·ï¼è¯¥ä¼ä¸ç¨æ·ä¸åå¨ï¼"); } // if(Constants.equalsInteger(cu.getStatus(),Constants.ONE)){ // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对ä¸èµ·ï¼è¯¥ä¼ä¸ç¨æ·å·²ç¦ç¨ï¼"); // } if(Constants.equalsInteger(cu.getStatus(),Constants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对ä¸èµ·ï¼è¯¥ä¼ä¸ç¨æ·å·²ç¦ç¨ï¼"); } rootDepart = departmentExtService.getModelById(c.getCompanyId(),cu.getRootDepartId()); comDepart = departmentExtService.getModelById(c.getCompanyId(),cu.getComDepartId()); depart = departmentExtService.getModelById(c.getCompanyId(),cu.getDepartmentId()); server/src/main/java/doumeemes/dao/business/UnqualifiedRecordMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package doumeemes.dao.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import doumeemes.dao.business.model.UnqualifiedRecord; /** * @author æ±è¹è¹ * @since 2023/08/16 14:15 */ public interface UnqualifiedRecordMapper extends BaseMapper<UnqualifiedRecord> { } server/src/main/java/doumeemes/dao/business/dto/AutoWorkReportDTO.java
@@ -33,4 +33,7 @@ @ApiModelProperty(value = "产åºè®°å½") private CreateWorkorderRecordDTO createWorkorderRecordDTO; @ApiModelProperty(value = "ä¸è¯åå类记å½") private List<CreateUnqualifiedDTO> createUnqualifiedDTOList ; } server/src/main/java/doumeemes/dao/business/dto/CreateUnqualifiedDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package doumeemes.dao.business.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; /** * @author æ±è¹è¹ * @date 2022/05/12 10:18 */ @Data public class CreateUnqualifiedDTO { @ApiModelProperty(value = "ä¸è¯ç±»å«ä¸»é®" ) private Integer categoryId; @ApiModelProperty(value = "æ£éªä¸åæ ¼æ°é") private BigDecimal unQualifiedNum; } server/src/main/java/doumeemes/dao/business/model/UnqualifiedRecord.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,79 @@ package doumeemes.dao.business.model; import doumeemes.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; import java.math.BigDecimal; /** * å·¥åç±»-æ¥å·¥ä¸è¯è®°å½ç±»å表 * @author æ±è¹è¹ * @since 2023/08/16 14:15 */ @Data @ApiModel("å·¥åç±»-æ¥å·¥ä¸è¯è®°å½ç±»å表") @TableName("`unqualified_record`") public class UnqualifiedRecord { @TableId(type = IdType.AUTO) @ApiModelProperty(value = "主é®", example = "1") @ExcelColumn(name="主é®") private Integer id; @ApiModelProperty(value = "æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤", example = "1") @ExcelColumn(name="æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤") private Integer deleted; @ApiModelProperty(value = "å建人ç¼ç ", example = "1") @ExcelColumn(name="å建人ç¼ç ") private Integer createUser; @ApiModelProperty(value = "å建æ¶é´") @ExcelColumn(name="å建æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date createTime; @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") @ExcelColumn(name="æ´æ°äººç¼ç ") private Integer updateUser; @ApiModelProperty(value = "æ´æ°æ¶é´") @ExcelColumn(name="æ´æ°æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date updateTime; @ApiModelProperty(value = "夿³¨") @ExcelColumn(name="夿³¨") private String remark; @ApiModelProperty(value = "主ç»ç»ç¼ç ï¼å ³èdepartmentè¡¨æ ¹ç»ç»ï¼", example = "1") @ExcelColumn(name="主ç»ç»ç¼ç ï¼å ³èdepartmentè¡¨æ ¹ç»ç»ï¼") private Integer rootDepartId; @ApiModelProperty(value = "å ¬å¸çº§ç»ç»ç¼ç ï¼å ³èdepartment表ï¼", example = "1") @ExcelColumn(name="å ¬å¸çº§ç»ç»ç¼ç ï¼å ³èdepartment表ï¼") private Integer departId; @ApiModelProperty(value = "å·¥å主é®", example = "1") @ExcelColumn(name="å·¥å主é®") private Integer workorderId; @ApiModelProperty(value = "产åºè®°å½ä¸»é®", example = "1") @ExcelColumn(name="产åºè®°å½ä¸»é®") private Integer recordId; @ApiModelProperty(value = "ç±»å«ä¸»é®", example = "1") @ExcelColumn(name="ç±»å«ä¸»é®") private Integer categoryId; @ApiModelProperty(value = "æ£éªä¸åæ ¼æ°é", example = "1") @ExcelColumn(name="æ£éªä¸åæ ¼æ°é") private BigDecimal unqualifiedNum; } server/src/main/java/doumeemes/dao/ext/vo/PlansExtListVO.java
@@ -153,8 +153,7 @@ @ExcelColumn(name="è®¡åæ¥æ",index = 4,width =15) @JsonFormat(pattern = "yyyy-MM-dd") private Date workPlanPlanDate; @ApiModelProperty(value = "æå计åç»ææ¥æ") @ExcelColumn(name="è®¡åæ¥æ",index = 3,width =15) @ApiModelProperty(value = "æå计åå¼å§æ¥æ") @JsonFormat(pattern = "yyyy-MM-dd") private Date workPlanStartDate; @@ -182,10 +181,6 @@ @ExcelColumn(name="éå®è®¢å") private String salesOrder; // @ApiModelProperty(value = "æå计åå¼å§æ¶é´") // @JsonFormat(pattern = "yyyy-MM-dd") // private Date workPlanStartDate; @ApiModelProperty(value = "æå计åç»ææ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") server/src/main/java/doumeemes/service/business/UnqualifiedRecordService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,97 @@ package doumeemes.service.business; import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.dao.business.model.UnqualifiedRecord; import java.util.List; /** * å·¥åç±»-æ¥å·¥ä¸è¯è®°å½ç±»å表Serviceå®ä¹ * @author æ±è¹è¹ * @since 2023/08/16 14:15 */ public interface UnqualifiedRecordService { /** * å建 * * @param unqualifiedRecord å®ä½å¯¹è±¡ * @return Integer */ Integer create(UnqualifiedRecord unqualifiedRecord); /** * 主é®å é¤ * * @param id ä¸»é® */ void deleteById(Integer id); /** * å é¤ * * @param unqualifiedRecord å®ä½å¯¹è±¡ */ void delete(UnqualifiedRecord unqualifiedRecord); /** * æ¹é主é®å é¤ * * @param ids 主é®é */ void deleteByIdInBatch(List<Integer> ids); /** * 䏻鮿´æ° * * @param unqualifiedRecord å®ä½å¯¹è±¡ */ void updateById(UnqualifiedRecord unqualifiedRecord); /** * æ¹é䏻鮿´æ° * * @param unqualifiedRecords å®ä½é */ void updateByIdInBatch(List<UnqualifiedRecord> unqualifiedRecords); /** * 䏻鮿¥è¯¢ * * @param id ä¸»é® * @return UnqualifiedRecord */ UnqualifiedRecord findById(Integer id); /** * æ¡ä»¶æ¥è¯¢åæ¡è®°å½ * * @param unqualifiedRecord å®ä½å¯¹è±¡ * @return UnqualifiedRecord */ UnqualifiedRecord findOne(UnqualifiedRecord unqualifiedRecord); /** * æ¡ä»¶æ¥è¯¢ * * @param unqualifiedRecord å®ä½å¯¹è±¡ * @return List<UnqualifiedRecord> */ List<UnqualifiedRecord> findList(UnqualifiedRecord unqualifiedRecord); /** * å页æ¥è¯¢ * * @param pageWrap å页对象 * @return PageData<UnqualifiedRecord> */ PageData<UnqualifiedRecord> findPage(PageWrap<UnqualifiedRecord> pageWrap); /** * æ¡ä»¶ç»è®¡ * * @param unqualifiedRecord å®ä½å¯¹è±¡ * @return long */ long count(UnqualifiedRecord unqualifiedRecord); } server/src/main/java/doumeemes/service/business/impl/UnqualifiedRecordServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,124 @@ package doumeemes.service.business.impl; import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.core.utils.Utils; import doumeemes.dao.business.UnqualifiedRecordMapper; import doumeemes.dao.business.model.UnqualifiedRecord; import doumeemes.service.business.UnqualifiedRecordService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; /** * å·¥åç±»-æ¥å·¥ä¸è¯è®°å½ç±»å表Serviceå®ç° * @author æ±è¹è¹ * @since 2023/08/16 14:15 */ @Service public class UnqualifiedRecordServiceImpl implements UnqualifiedRecordService { @Autowired private UnqualifiedRecordMapper unqualifiedRecordMapper; @Override public Integer create(UnqualifiedRecord unqualifiedRecord) { unqualifiedRecordMapper.insert(unqualifiedRecord); return unqualifiedRecord.getId(); } @Override public void deleteById(Integer id) { unqualifiedRecordMapper.deleteById(id); } @Override public void delete(UnqualifiedRecord unqualifiedRecord) { UpdateWrapper<UnqualifiedRecord> deleteWrapper = new UpdateWrapper<>(unqualifiedRecord); unqualifiedRecordMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List<Integer> ids) { if (CollectionUtils.isEmpty(ids)) { return; } unqualifiedRecordMapper.deleteBatchIds(ids); } @Override public void updateById(UnqualifiedRecord unqualifiedRecord) { unqualifiedRecordMapper.updateById(unqualifiedRecord); } @Override public void updateByIdInBatch(List<UnqualifiedRecord> unqualifiedRecords) { if (CollectionUtils.isEmpty(unqualifiedRecords)) { return; } for (UnqualifiedRecord unqualifiedRecord: unqualifiedRecords) { this.updateById(unqualifiedRecord); } } @Override public UnqualifiedRecord findById(Integer id) { return unqualifiedRecordMapper.selectById(id); } @Override public UnqualifiedRecord findOne(UnqualifiedRecord unqualifiedRecord) { QueryWrapper<UnqualifiedRecord> wrapper = new QueryWrapper<>(unqualifiedRecord); return unqualifiedRecordMapper.selectOne(wrapper); } @Override public List<UnqualifiedRecord> findList(UnqualifiedRecord unqualifiedRecord) { QueryWrapper<UnqualifiedRecord> wrapper = new QueryWrapper<>(unqualifiedRecord); return unqualifiedRecordMapper.selectList(wrapper); } @Override public PageData<UnqualifiedRecord> findPage(PageWrap<UnqualifiedRecord> pageWrap) { IPage<UnqualifiedRecord> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper<UnqualifiedRecord> queryWrapper = new QueryWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper.lambda() .eq(pageWrap.getModel().getId() != null, UnqualifiedRecord::getId, pageWrap.getModel().getId()) .eq(pageWrap.getModel().getDeleted() != null, UnqualifiedRecord::getDeleted, pageWrap.getModel().getDeleted()) .eq(pageWrap.getModel().getCreateUser() != null, UnqualifiedRecord::getCreateUser, pageWrap.getModel().getCreateUser()) .ge(pageWrap.getModel().getCreateTime() != null, UnqualifiedRecord::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime())) .le(pageWrap.getModel().getCreateTime() != null, UnqualifiedRecord::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime())) .eq(pageWrap.getModel().getUpdateUser() != null, UnqualifiedRecord::getUpdateUser, pageWrap.getModel().getUpdateUser()) .ge(pageWrap.getModel().getUpdateTime() != null, UnqualifiedRecord::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime())) .le(pageWrap.getModel().getUpdateTime() != null, UnqualifiedRecord::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime())) .eq(pageWrap.getModel().getRemark() != null, UnqualifiedRecord::getRemark, pageWrap.getModel().getRemark()) .eq(pageWrap.getModel().getRootDepartId() != null, UnqualifiedRecord::getRootDepartId, pageWrap.getModel().getRootDepartId()) .eq(pageWrap.getModel().getDepartId() != null, UnqualifiedRecord::getDepartId, pageWrap.getModel().getDepartId()) .eq(pageWrap.getModel().getWorkorderId() != null, UnqualifiedRecord::getWorkorderId, pageWrap.getModel().getWorkorderId()) .eq(pageWrap.getModel().getRecordId() != null, UnqualifiedRecord::getRecordId, pageWrap.getModel().getRecordId()) .eq(pageWrap.getModel().getCategoryId() != null, UnqualifiedRecord::getCategoryId, pageWrap.getModel().getCategoryId()) .eq(pageWrap.getModel().getUnqualifiedNum() != null, UnqualifiedRecord::getUnqualifiedNum, pageWrap.getModel().getUnqualifiedNum()) ; for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } } return PageData.from(unqualifiedRecordMapper.selectPage(page, queryWrapper)); } @Override public long count(UnqualifiedRecord unqualifiedRecord) { QueryWrapper<UnqualifiedRecord> wrapper = new QueryWrapper<>(unqualifiedRecord); return unqualifiedRecordMapper.selectCount(wrapper); } } server/src/main/java/doumeemes/service/ext/CategoryExtService.java
@@ -33,4 +33,6 @@ CategoryExtListVO getByCategoryId(Integer comid, Integer id); CategoryExtListVO getByCategoryId(Integer comid, Integer id,List<CategoryExtListVO> allList); void loadAll(); List<CategoryExtListVO> findList(QueryCategoryExtDTO queryCategoryExtDTO); } server/src/main/java/doumeemes/service/ext/impl/CategoryExtServiceImpl.java
@@ -49,6 +49,12 @@ } @Override public List<CategoryExtListVO> findList(QueryCategoryExtDTO queryCategoryExtDTO) { List<CategoryExtListVO> result = categoryExtMapper.selectList(queryCategoryExtDTO); return result; } @Override public List<CategoryExtListVO> getListByType(String type,Integer rootDepartId,String cateType,String id) { QueryCategoryExtDTO queryCategoryExtDTO=new QueryCategoryExtDTO(); queryCategoryExtDTO.setDeleted(Constants.ZERO); server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
@@ -16,6 +16,7 @@ import doumeemes.core.utils.excel.EasyExcelUtil; import doumeemes.core.utils.redis.RedisUtil; import doumeemes.dao.business.PlansMapper; import doumeemes.dao.business.UnqualifiedRecordMapper; import doumeemes.dao.business.WorkorderMapper; import doumeemes.dao.business.dto.*; import doumeemes.dao.business.model.*; @@ -92,6 +93,8 @@ private WStockExtService wStockExtService; @Autowired private WorkorderRecordStandardService workorderRecordStandardService; @Autowired private UnqualifiedRecordMapper unqualifiedRecordMapper; @Override public PlansExtListVO findById(Integer id){ @@ -702,9 +705,9 @@ if(ulist == null){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼ç产人åä¿¡æ¯ä¸æ£ç¡®ï¼è¯·å·æ°é¡µé¢éè¯ï¼"); } if(ulist.size() < param.getProUserList().size()){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼åå¨ç产人åä¿¡æ¯ä¸æ£ç¡®ï¼è¯·å·æ°é¡µé¢éè¯ï¼"); } // if(ulist.size() < param.getProUserList().size()){ // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼åå¨ç产人åä¿¡æ¯ä¸æ£ç¡®ï¼è¯·å·æ°é¡µé¢éè¯ï¼"); // } List<WorkorderUser> userList = new ArrayList<>(); for(UserDeviceExtListVO uModel : ulist){ WorkorderUser u = new WorkorderUser(); @@ -1587,7 +1590,7 @@ if(Objects.isNull(plans)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°å·¥åºè®¡åæ°æ®"); } if(!(plans.getStatus().equals(Constants.PLAN_STATUS.create)||plans.getStatus().equals(Constants.PLAN_STATUS.distribute))){ if(!(plans.getStatus().equals(Constants.PLAN_STATUS.create)||plans.getStatus().equals(Constants.PLAN_STATUS.publish)||plans.getStatus().equals(Constants.PLAN_STATUS.distribute))){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"å·¥åºè®¡åå·²æµè½¬ï¼æ æ³æä½"); } if(plans.getPaused().equals(Constants.ONE)){ @@ -1598,7 +1601,7 @@ } //æ¥è¯¢å·¥åºè®¡åå·²åé æ°é List<Workorder> workorderList = workorderMapper.selectList(new QueryWrapper<Workorder>().eq("PLAN_ID",plans.getId()) .notIn("STATUS",7,8)); .eq("STATUS",Constants.WORKORDER_STATUS.baogong)); //æ¬æ¬¡äº§åºæ°é BigDecimal num = autoWorkReportDTO.getCreateWorkorderRecordDTO().getQualifiedNum().add(autoWorkReportDTO.getCreateWorkorderRecordDTO().getUnQualifiedNum()); if(num.compareTo(BigDecimal.ZERO)<=Constants.ZERO){ @@ -1615,7 +1618,7 @@ param.setPlanDate(new Date()); param.setProGroupId(autoWorkReportDTO.getProGroupId()); param.setProUserList(autoWorkReportDTO.getProUserList()); param.setPlanNum(plans.getNum()); param.setPlanNum(num.intValue()); //çæå·¥åä¿¡æ¯ Workorder workorder = this.distributeDone(user,param,plans.getNum()); //å·¥åææè®°å½ @@ -1627,7 +1630,7 @@ } //å·¥å产åºè®°å½ autoWorkReportDTO.getCreateWorkorderRecordDTO().setWorkorderId(workorder.getId()); workorderRecordStandardService.createWorkorderRecord(autoWorkReportDTO.getCreateWorkorderRecordDTO(),user); WorkorderRecord workorderRecord = workorderRecordStandardService.createWorkorderRecord(autoWorkReportDTO.getCreateWorkorderRecordDTO(),user); //工忥工 workorderRecordStandardService.comfirmDone(workorder); //æ´æ°å·¥åç¶æ @@ -1639,8 +1642,35 @@ } } plansExtMapper.updateById(plans); //å卿¥å·¥ä¸è¯é¡¹æ°æ® if(autoWorkReportDTO.getCreateWorkorderRecordDTO().getUnQualifiedNum().compareTo(BigDecimal.ZERO)<=Constants.ZERO){ if(!Objects.isNull(autoWorkReportDTO.getCreateUnqualifiedDTOList())&&autoWorkReportDTO.getCreateUnqualifiedDTOList().size()>Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¸è¯é¡¹é误ï¼è¯·æ£æ¥ä¸è¯é¡¹æ°æ®"); } }else{ List<CreateUnqualifiedDTO> createUnqualifiedDTOList = autoWorkReportDTO.getCreateUnqualifiedDTOList(); BigDecimal unqualified = createUnqualifiedDTOList.stream().map(s -> s.getUnQualifiedNum()).reduce(BigDecimal.ZERO, BigDecimal::add); if(unqualified.compareTo(autoWorkReportDTO.getCreateWorkorderRecordDTO().getUnQualifiedNum())!=Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¸è¯é¡¹é误ï¼è¯·æ£æ¥ä¸è¯é¡¹æ°æ®"); } for (CreateUnqualifiedDTO createUnqualifiedDTO:createUnqualifiedDTOList) { if(createUnqualifiedDTO.getUnQualifiedNum().compareTo(BigDecimal.ZERO)==Constants.ZERO ||Objects.isNull(createUnqualifiedDTO.getCategoryId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¸è¯é¡¹é误ï¼è¯·æ£æ¥ä¸è¯é¡¹æ°æ®"); } UnqualifiedRecord unqualifiedRecord = new UnqualifiedRecord(); unqualifiedRecord.setDeleted(Constants.ZERO); unqualifiedRecord.setCreateUser(user.getId()); unqualifiedRecord.setCreateTime(new Date()); unqualifiedRecord.setRootDepartId(plans.getRootDepartId()); unqualifiedRecord.setDepartId(plans.getDepartId()); unqualifiedRecord.setWorkorderId(workorder.getId()); unqualifiedRecord.setRecordId(workorderRecord.getId()); unqualifiedRecord.setCategoryId(createUnqualifiedDTO.getCategoryId()); unqualifiedRecord.setUnqualifiedNum(createUnqualifiedDTO.getUnQualifiedNum()); unqualifiedRecordMapper.insert(unqualifiedRecord); } } } server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java
@@ -794,6 +794,126 @@ // private void dealAppliancePro(Workorder mp // , LoginUserInfo user // , List<WorkorderRecordExtListVO> allRecordList // , List<Appliances> updateApplianceList // , List<Appliances> updateApplianceProList // , List<WOutboundDetail> outboundDetailList // , List<WStock> stockList) { // WOutbound outbound = new WOutbound(); // outbound.setDeleted(Constants.ZERO); // outbound.setCreateTime(DateUtil.getCurrentDate()); // outbound.setDealDate(outbound.getCreateTime()); // outbound.setValidDate(outbound.getCreateTime()); // outbound.setCreateUser(user.getId()); // outbound.setRootDepartId(mp.getRootDepartId()); // outbound.setDepartId(mp.getDepartId()); // outbound.setStatus(Constants.WOUTBOUND_STATUS.dealed); // outbound.setType(Constants.WOUTBOUND_TYPE.in); // //2022å¹´7æ1æ¥14:42:41 å å ¥åæ®ç±»å« // outbound.setBillType(Constants.WOUTBOUND_BILLTYPE.workerOrderIn); // outbound.setCode(wOutboundService.getNextInCode(user.getCompany().getId())); // outbound.setOrigin(Constants.ONE); // outbound.setOriginType(Constants.WOUTBOUND_ORIGIN_TYPE.produce); // outbound.setOriginCode(mp.getCode()); // outbound.setOriginId(mp.getId()); // outbound.setPlanDate(DateUtil.getCurrentDate()); // outbound.setProcedureId(mp.getProcedureId()); // outbound.setUserId(user.getId()); // outbound.setWarehouseId(mp.getFinishWarehouseId()); // wOutboundService.create(outbound); // // List<WOutboundDetail> detailList = new ArrayList<>(); // List<WOutboundRecord> recordList = new ArrayList<>(); // for(WorkorderRecordExtListVO tModel :allRecordList){ // if(Constants.equalsInteger(tModel.getType(),Constants.WORKORDER_RECORD_TYPE.produce)){ // if(tModel.getNum().compareTo(BigDecimal.ZERO)<=Constants.ZERO){ // continue; // } // //妿æ¯äº§åº // mp.setHasProduceNum(Constants.formatBigdecimal(tModel.getNum()).intValue()+Constants.formatIntegerNum(mp.getHasProduceNum())); // // //ç©æ+æ¹æ¬¡+å·¥åº+è´¨é屿§å»é // WOutboundDetail detail =getWoutbondDetailByList(tModel,detailList); // if(detail!=null){ // detail.setNum(Constants.formatBigdecimal(detail.getNum()).add(tModel.getNum())); // }else{ // detail = new WOutboundDetail(); // detail.setDeleted(Constants.ZERO); // detail.setCreateTime(DateUtil.getCurrentDate()); // detail.setCreateUser(user.getId()); // detail.setOutboundId(outbound.getId()); // detail.setRootDepartId(outbound.getRootDepartId()); // detail.setWarehouseId(outbound.getWarehouseId()); // detail.setLocationId(mp.getFinishWarehouseLocationId()); // detail.setNum(tModel.getNum()); // detail.setStatus(Constants.ONE); // detail.setDoneNum(tModel.getNum()); // detail.setDoneDate(new Date()); // detail.setUnitId(tModel.getUnitId()); // detail.setBatch(tModel.getMaterialBatch()); // detail.setProcedureId(tModel.getProcedureId()); // detail.setMaterialId(tModel.getMaterialId()); // detail.setQualityType(tModel.getDoneType()); // detail.setWOutboundRecordInList(new ArrayList<>()); // detailList.add(detail); // } // // WOutboundRecord record = new WOutboundRecord(); // record.setDeleted(Constants.ZERO); // record.setCreateTime(DateUtil.getCurrentDate()); // record.setCreateUser(user.getId()); // record.setAppliancesId(tModel.getAppliancesId()); // record.setBatch(detail.getBatch()); // record.setRootDepartId(mp.getRootDepartId()); // record.setNum(tModel.getNum()); // record.setOutboundId(detail.getOutboundId()); // record.setUnitId(detail.getUnitId()); // record.setWarehouseId(detail.getWarehouseId()); // record.setMaterialId(detail.getMaterialId()); // record.setProcedureId(detail.getProcedureId()); // record.setLocationId(detail.getLocationId()); // record.setQualityType(detail.getQualityType()); // detail.getWOutboundRecordInList().add(record); // // WStock stock = getFromStockList(mp.getFinishWarehouseLocationId(),detail.getWarehouseId(),detail.getMaterialId(),detail.getBatch(), // tModel.getProcedureId(),tModel.getDoneType(),stockList); // if(stock!=null){ // //妿åºå对象已åå¨ï¼ç´æ¥å¢å 对åºçåºåé // stock.setNum(Constants.formatBigdecimal(stock.getNum()).add(Constants.formatBigdecimal(tModel.getNum()))); // }else{ // stock = new WStock(); // stock.setMaterialId(detail.getMaterialId()); // stock.setBatch(detail.getBatch()); // stock.setWarehouseId(outbound.getWarehouseId()); // stock.setLocationId(mp.getFinishWarehouseLocationId()); // stock.setUnitId(detail.getUnitId()); // stock.setNum(Constants.formatBigdecimal(tModel.getNum())); // stock.setProcedureId(tModel.getProcedureId()); // stock.setQualityType(tModel.getDoneType()); // //å¾ æ´æ°åºåä¿¡æ¯ // stockList.add(stock); // } // } // } // for(WOutboundDetail detail : detailList){ // wOutboundDetailExtMapper.insert(detail); // //è®°å½åºååå¨è®°å½ // wStockRecordExtService.saveRecord(Constants.ONE,detail.getId(),user); // if(detail.getWOutboundRecordInList()!=null){ // for(WOutboundRecord r : detail.getWOutboundRecordInList()){ // r.setDetailId(detail.getId()); // wOutboundRecordExtMapper.insert(r); // } // } // } // if(Constants.formatIntegerNum(mp.getHasProduceNum()) >Constants.formatIntegerNum(mp.getPlanNum())){ // throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼è¯¥å·¥åçäº§åºæ°éä¸è½å¤§äºå·¥åè®¡åæ°éï¼"); // } // } private void dealAppliancePro(Workorder mp , LoginUserInfo user , List<WorkorderRecordExtListVO> allRecordList @@ -833,78 +953,10 @@ } //妿æ¯äº§åº mp.setHasProduceNum(Constants.formatBigdecimal(tModel.getNum()).intValue()+Constants.formatIntegerNum(mp.getHasProduceNum())); // if(tModel.getDoneType() == null){ // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼å·¥è£ å¨å ·ã"+tModel.getAmodel().getCode()+"ã产åºè´¨é屿§ä¸ºç©ºï¼æ æ³æ¥å·¥ï¼"); // } // if(!Constants.equalsInteger(tModel.getDoneType(),Constants.ZERO)){ // //妿ä¸è¯ï¼ç´¯è®¡å·¥åçä¸è¯äº§åº // mp.setUnqualifiedNum(Constants.formatIntegerNum(mp.getUnqualifiedNum())+(Constants.formatBigdecimal(tModel.getNum()).intValue())); // }else{ // //妿æ¯åæ ¼ï¼ç´¯è®¡å·¥åçåæ ¼æ°é // mp.setQualifiedNum(Constants.formatIntegerNum(mp.getQualifiedNum())+(Constants.formatBigdecimal(tModel.getNum()).intValue())); // } //ç©æ+æ¹æ¬¡+å·¥åº+è´¨é屿§å»é WOutboundDetail detail =getWoutbondDetailByList(tModel,detailList); if(detail!=null){ detail.setNum(Constants.formatBigdecimal(detail.getNum()).add(tModel.getNum())); }else{ detail = new WOutboundDetail(); detail.setDeleted(Constants.ZERO); detail.setCreateTime(DateUtil.getCurrentDate()); detail.setCreateUser(user.getId()); detail.setOutboundId(outbound.getId()); detail.setRootDepartId(outbound.getRootDepartId()); detail.setWarehouseId(outbound.getWarehouseId()); detail.setLocationId(mp.getFinishWarehouseLocationId()); detail.setNum(tModel.getNum()); detail.setStatus(Constants.ONE); detail.setDoneNum(tModel.getNum()); detail.setDoneDate(new Date()); detail.setUnitId(tModel.getUnitId()); detail.setBatch(tModel.getMaterialBatch()); detail.setProcedureId(tModel.getProcedureId()); detail.setMaterialId(tModel.getMaterialId()); detail.setQualityType(tModel.getDoneType()); detail.setWOutboundRecordInList(new ArrayList<>()); detailList.add(detail); } WOutboundRecord record = new WOutboundRecord(); record.setDeleted(Constants.ZERO); record.setCreateTime(DateUtil.getCurrentDate()); record.setCreateUser(user.getId()); record.setAppliancesId(tModel.getAppliancesId()); record.setBatch(detail.getBatch()); record.setRootDepartId(mp.getRootDepartId()); record.setNum(tModel.getNum()); record.setOutboundId(detail.getOutboundId()); record.setUnitId(detail.getUnitId()); record.setWarehouseId(detail.getWarehouseId()); record.setMaterialId(detail.getMaterialId()); record.setProcedureId(detail.getProcedureId()); record.setLocationId(detail.getLocationId()); record.setQualityType(detail.getQualityType()); detail.getWOutboundRecordInList().add(record); WStock stock = getFromStockList(mp.getFinishWarehouseLocationId(),detail.getWarehouseId(),detail.getMaterialId(),detail.getBatch(), tModel.getProcedureId(),tModel.getDoneType(),stockList); if(stock!=null){ //妿åºå对象已åå¨ï¼ç´æ¥å¢å 对åºçåºåé stock.setNum(Constants.formatBigdecimal(stock.getNum()).add(Constants.formatBigdecimal(tModel.getNum()))); }else{ stock = new WStock(); stock.setMaterialId(detail.getMaterialId()); stock.setBatch(detail.getBatch()); stock.setWarehouseId(outbound.getWarehouseId()); stock.setLocationId(mp.getFinishWarehouseLocationId()); stock.setUnitId(detail.getUnitId()); stock.setNum(Constants.formatBigdecimal(tModel.getNum())); stock.setProcedureId(tModel.getProcedureId()); stock.setQualityType(tModel.getDoneType()); //å¾ æ´æ°åºåä¿¡æ¯ stockList.add(stock); } //产åºåæ ¼ this.createOutDetail(user,outbound,mp,tModel,Constants.ZERO,detailList,stockList); //产åºä¸è¯ this.createOutDetail(user,outbound,mp,tModel,Constants.ONE,detailList,stockList); } } for(WOutboundDetail detail : detailList){ @@ -922,6 +974,68 @@ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼è¯¥å·¥åçäº§åºæ°éä¸è½å¤§äºå·¥åè®¡åæ°éï¼"); } } public void createOutDetail(LoginUserInfo user,WOutbound outbound,Workorder mp,WorkorderRecordExtListVO tModel,Integer doneType ,List<WOutboundDetail> detailList,List<WStock> stockList ){ //ç©æ+æ¹æ¬¡+å·¥åº+è´¨é屿§å»é WOutboundDetail detail = new WOutboundDetail(); detail.setDeleted(Constants.ZERO); detail.setCreateTime(DateUtil.getCurrentDate()); detail.setCreateUser(user.getId()); detail.setOutboundId(outbound.getId()); detail.setRootDepartId(outbound.getRootDepartId()); detail.setWarehouseId(outbound.getWarehouseId()); detail.setLocationId(mp.getFinishWarehouseLocationId()); detail.setNum(BigDecimal.valueOf(doneType.equals(Constants.ZERO)?tModel.getQualifiedNum():tModel.getUnqualifiedNum())); detail.setStatus(Constants.ONE); detail.setDoneNum(detail.getNum()); detail.setDoneDate(new Date()); detail.setUnitId(tModel.getUnitId()); detail.setBatch(tModel.getMaterialBatch()); detail.setProcedureId(tModel.getProcedureId()); detail.setMaterialId(tModel.getMaterialId()); detail.setQualityType(doneType); detail.setWOutboundRecordInList(new ArrayList<>()); detailList.add(detail); WOutboundRecord record = new WOutboundRecord(); record.setDeleted(Constants.ZERO); record.setCreateTime(DateUtil.getCurrentDate()); record.setCreateUser(user.getId()); record.setAppliancesId(tModel.getAppliancesId()); record.setBatch(detail.getBatch()); record.setRootDepartId(mp.getRootDepartId()); record.setNum(tModel.getNum()); record.setOutboundId(detail.getOutboundId()); record.setUnitId(detail.getUnitId()); record.setWarehouseId(detail.getWarehouseId()); record.setMaterialId(detail.getMaterialId()); record.setProcedureId(detail.getProcedureId()); record.setLocationId(detail.getLocationId()); record.setQualityType(detail.getQualityType()); detail.getWOutboundRecordInList().add(record); WStock stock = getFromStockList(mp.getFinishWarehouseLocationId(),detail.getWarehouseId(),detail.getMaterialId(),detail.getBatch(), tModel.getProcedureId(),tModel.getDoneType(),stockList); if(stock!=null){ //妿åºå对象已åå¨ï¼ç´æ¥å¢å 对åºçåºåé stock.setNum(Constants.formatBigdecimal(stock.getNum()).add(Constants.formatBigdecimal(tModel.getNum()))); }else{ stock = new WStock(); stock.setMaterialId(detail.getMaterialId()); stock.setBatch(detail.getBatch()); stock.setWarehouseId(outbound.getWarehouseId()); stock.setLocationId(mp.getFinishWarehouseLocationId()); stock.setUnitId(detail.getUnitId()); stock.setNum(Constants.formatBigdecimal(tModel.getNum())); stock.setProcedureId(tModel.getProcedureId()); stock.setQualityType(tModel.getDoneType()); //å¾ æ´æ°åºåä¿¡æ¯ stockList.add(stock); } } private WStock initMaterialNum(Integer materialId, BigDecimal num) { WStock s = new WStock(); @@ -1247,16 +1361,14 @@ workorderRecord.setSalaryPrice(salaryParam.getSalary()); workorderRecord.setSalaryType(salaryParam.getType()); workorderRecord.setSalaryUnqualified(salaryParam.getUnqualified()); //è®¡ä»¶å·¥èµ if(salaryParam.getType().equals(Constants.ZERO)){ workorderRecord.setSalaryNum(salaryParam.getNum()); workorderRecord.setSalary(salaryParam.getSalary().multiply(salaryParam.getUnqualified()==Constants.ZERO?num:createWorkorderRecordDTO.getUnQualifiedNum())); workorderRecord.setSalary(salaryParam.getSalary().multiply(salaryParam.getUnqualified()==Constants.ONE?num:createWorkorderRecordDTO.getQualifiedNum())); }else{ workorderRecord.setDuration(createWorkorderRecordDTO.getDuration()); workorderRecord.setSalary(BigDecimal.valueOf(createWorkorderRecordDTO.getDuration()).multiply(salaryParam.getSalary()).divide(new BigDecimal(3600))); } //æå ¥å·¥åæä½è®°å½ï¼å¹¶ä¸å¤ææ¯å¦æ´æ¹ä¸ºå·¥åçç¶æãç产ä¸ã updateOrderInfo(loginUserInfo,workorder,Constants.WORKORDER_HISTORY_STATUS.produce); workorderRecordExtMapper.insert(workorderRecord); server/src/main/resources/mappers/PlansExtMapper.xml
@@ -370,7 +370,6 @@ w.START_DATE as workPlanStartDate , w.PLAN_DATE as workPlanEndDate, w.`PLAN_DATE` as workPlanPlanDate, ifnull((select sum(worder.PLAN_NUM) from workorder worder where worder.PLAN_ID = a.id and worder.STATUS not in (7,8) ),0) as produceNum FROM `plans` `a` LEFT JOIN `department` `dmodel` ON a.DEPART_ID=dmodel.ID LEFT JOIN `material_distribute` `mdmodel` ON a.MATERIAL_ID=mdmodel.ID server/src/main/resources/mappers/UserDeviceExtMapper.xml
@@ -201,7 +201,7 @@ AND `umodel`.`ROOT_DEPART_ID` = #{umodelRootDepartId} </if> <if test="umodelName != null and umodelName != ''"> AND `umodel`.`NAME` = #{umodelName} AND `umodel`.`NAME` like concat('%', #{umodelName} , '%') </if> <if test="umodelPhone != null and umodelPhone != ''"> AND `umodel`.`PHONE` = #{umodelPhone}