| | |
| | | import com.java110.po.owner.RepairPoolPo; |
| | | import com.java110.po.owner.RepairUserPo; |
| | | import com.java110.utils.cache.MappingCache; |
| | | import com.java110.utils.constant.MappingConstant; |
| | | import com.java110.utils.exception.CmdException; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | | import com.java110.utils.util.DateUtil; |
| | | import com.java110.utils.util.ListUtil; |
| | | import com.java110.vo.ResultVo; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.ResponseEntity; |
| | |
| | | @Autowired |
| | | private IRepairUserV1InnerServiceSMO repairUserV1InnerServiceSMOImpl; |
| | | |
| | | |
| | | //域 |
| | | public static final String DOMAIN_COMMON = "DOMAIN.COMMON"; |
| | | |
| | |
| | | Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区信息"); |
| | | Assert.hasKeyAndValue(reqJson, "action", "未包含处理动作"); |
| | | |
| | | if(!reqJson.containsKey("userId")){ |
| | | reqJson.put("userId",context.getReqHeaders().get("user-id")); |
| | | if (!reqJson.containsKey("userId")) { |
| | | reqJson.put("userId", context.getReqHeaders().get("user-id")); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | @Java110Transactional |
| | | public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException { |
| | | RepairUserPo repairUserPo = BeanConvertUtil.covertBean(reqJson, RepairUserPo.class); |
| | | |
| | | // RepairUserPo repairUserPo = BeanConvertUtil.covertBean(reqJson, RepairUserPo.class); |
| | | String action = reqJson.getString("action"); |
| | | |
| | | |
| | | switch (action) { |
| | | case ACTION_DISPATCH: |
| | | case ACTION_DISPATCH: //派单 |
| | | dispacthRepair(context, reqJson); |
| | | break; |
| | | case ACTION_TRANSFER: |
| | | case ACTION_TRANSFER: //转单 |
| | | transferRepair(context, reqJson); |
| | | break; |
| | | case ACTION_BACK: |
| | | case ACTION_BACK: //退单 |
| | | backRepair(context, reqJson); |
| | | break; |
| | | } |
| | |
| | | List<RepairDto> repairDtos = repairInnerServiceSMOImpl.queryRepairs(repairDto); |
| | | Assert.listOnlyOne(repairDtos, "当前用户没有需要处理订单或存在多条"); |
| | | int flag = 0; |
| | | |
| | | //待评价 |
| | | if (RepairDto.STATE_APPRAISE.equals(repairDtos.get(0).getState())) { |
| | | FeeAttrDto feeAttrDto = new FeeAttrDto(); |
| | |
| | | feeAttrDto.setSpecCd(FeeAttrDto.SPEC_CD_REPAIR); |
| | | feeAttrDto.setValue(reqJson.getString("repairId")); |
| | | List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto); |
| | | if (feeAttrDtos != null && feeAttrDtos.size() > 0) { |
| | | if (!ListUtil.isNull(feeAttrDtos)) { |
| | | FeeDto feeDto = new FeeDto(); |
| | | feeDto.setCommunityId(reqJson.getString("communityId")); |
| | | feeDto.setFeeId(feeAttrDtos.get(0).getFeeId()); |
| | |
| | | context.setResponseEntity(responseEntity); |
| | | return; |
| | | } |
| | | |
| | | PayFeePo payFeePo = new PayFeePo(); |
| | | payFeePo.setCommunityId(feeDtos.get(0).getCommunityId()); |
| | | payFeePo.setFeeId(feeDtos.get(0).getFeeId()); |
| | |
| | | // if (flag < 1) { |
| | | // throw new CmdException("删除费用失败"); |
| | | // } |
| | | |
| | | } |
| | | |
| | | ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK); |
| | | |
| | | context.setResponseEntity(responseEntity); |
| | | } |
| | | |
| | | |
| | | String userId = reqJson.getString("userId"); |
| | | String userName = reqJson.getString("userName"); |
| | | |
| | | RepairUserDto repairUserDto = new RepairUserDto(); |
| | | repairUserDto.setRepairId(reqJson.getString("repairId")); |
| | | repairUserDto.setCommunityId(reqJson.getString("communityId")); |
| | | repairUserDto.setState(RepairUserDto.STATE_DOING); |
| | | repairUserDto.setStaffId(userId); |
| | | //todo 这里考虑带评价 |
| | | repairUserDto.setStates(new String[]{RepairUserDto.STATE_DOING,RepairUserDto.STATE_EVALUATE}); |
| | | repairUserDto.setStaffId(reqJson.getString("userId")); |
| | | List<RepairUserDto> repairUserDtos = repairUserInnerServiceSMOImpl.queryRepairUsers(repairUserDto); |
| | | if (repairUserDtos != null && repairUserDtos.size() != 1) { |
| | | if (!ListUtil.isNull(repairUserDtos)) { |
| | | ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "当前用户没有需要处理订单!"); |
| | | context.setResponseEntity(responseEntity); |
| | | return; |
| | | } |
| | | String ruId = repairUserDtos.get(0).getRuId(); |
| | | RepairUserPo repairUserPo = new RepairUserPo(); |
| | | repairUserPo.setRuId(repairUserDtos.get(0).getRuId()); |
| | | repairUserPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | | repairUserPo.setState(RepairUserDto.STATE_BACK); |
| | | repairUserPo.setContext(reqJson.getString("context")); |
| | | repairUserPo.setCommunityId(reqJson.getString("communityId")); |
| | | //处理人信息 |
| | | repairUserPo = new RepairUserPo(); |
| | | repairUserPo.setRuId("-1"); |
| | | repairUserPo.setState(RepairUserDto.STATE_DOING); |
| | | repairUserPo.setRepairId(reqJson.getString("repairId")); |
| | | repairUserPo.setStaffId(reqJson.getString("staffId")); |
| | | repairUserPo.setStaffName(reqJson.getString("staffName")); |
| | | repairUserPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | | repairUserDto = new RepairUserDto(); |
| | | repairUserDto.setRepairId(reqJson.getString("repairId")); |
| | | repairUserDto.setStaffId(reqJson.getString("staffId")); |
| | | repairUserDto.setCommunityId(reqJson.getString("communityId")); |
| | | repairUserDto.setRuId(repairUserDtos.get(0).getPreRuId()); |
| | | repairUserDto.setStates(new String[]{RepairUserDto.STATE_TRANSFER, RepairUserDto.STATE_CLOSE, RepairUserDto.STATE_STOP}); |
| | | repairUserDtos = repairUserInnerServiceSMOImpl.queryRepairUsers(repairUserDto); |
| | | |
| | | if (repairUserDtos == null || repairUserDtos.size() < 1) { |
| | | if (RepairDto.REPAIR_WAY_GRABBING.equals(repairDtos.get(0).getRepairWay()) |
| | | || RepairDto.REPAIR_WAY_TRAINING.equals(repairDtos.get(0).getRepairWay()) |
| | | ) { |
| | | modifyBusinessRepairDispatch(reqJson, RepairDto.STATE_WAIT); |
| | | RepairUserDto repair = new RepairUserDto(); |
| | | repair.setRepairId(reqJson.getString("repairId")); |
| | | repair.setStaffId(reqJson.getString("staffId")); |
| | | repair.setCommunityId(reqJson.getString("communityId")); |
| | | repair.setStates(new String[]{RepairUserDto.STATE_TRANSFER, RepairUserDto.STATE_CLOSE, RepairUserDto.STATE_STOP,RepairUserDto.STATE_EVALUATE}); |
| | | List<RepairUserDto> repairUsers = repairUserInnerServiceSMOImpl.queryRepairUsers(repair); |
| | | if (ListUtil.isNull(repairUsers)) { //指派的不能退单 |
| | | if (RepairDto.REPAIR_WAY_GRABBING.equals(repairDtos.get(0).getRepairWay()) |
| | | || RepairDto.REPAIR_WAY_TRAINING.equals(repairDtos.get(0).getRepairWay())) { //抢单、轮训 |
| | | modifyBusinessRepairDispatch(reqJson, RepairDto.STATE_WAIT);//维修单变成未派单 |
| | | //把自己改成退单 |
| | | RepairUserPo repairUser = new RepairUserPo(); |
| | | repairUser.setRuId(ruId); |
| | | repairUser.setRuId(repairUserDtos.get(0).getRuId()); |
| | | repairUser.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | | repairUser.setState(RepairUserDto.STATE_BACK); |
| | | repairUser.setContext(reqJson.getString("context")); |
| | | repairUser.setCommunityId(reqJson.getString("communityId")); |
| | | flag = repairUserV1InnerServiceSMOImpl.updateRepairUserNew(repairUserPo); |
| | | flag = repairUserV1InnerServiceSMOImpl.updateRepairUserNew(repairUser); |
| | | if (flag < 1) { |
| | | throw new CmdException("修改用户失败"); |
| | | } |
| | | return; |
| | | } else { |
| | | ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "非常抱歉当前不能退单!"); |
| | | ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "非常抱歉当前不能退单,报修设置为指派模式不可进行退单!"); |
| | | context.setResponseEntity(responseEntity); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | //把自己改成退单 |
| | | RepairUserPo repairUser = new RepairUserPo(); |
| | | repairUser.setRuId(ruId); |
| | | repairUser.setRuId(repairUserDtos.get(0).getRuId()); |
| | | repairUser.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | | repairUser.setState(RepairUserDto.STATE_BACK); |
| | | repairUser.setContext(reqJson.getString("context")); |
| | | repairUser.setCommunityId(reqJson.getString("communityId")); |
| | | flag = repairUserV1InnerServiceSMOImpl.updateRepairUserNew(repairUserPo); |
| | | flag = repairUserV1InnerServiceSMOImpl.updateRepairUserNew(repairUser); |
| | | if (flag < 1) { |
| | | throw new CmdException("修改用户失败"); |
| | | } |
| | | repairUserPo.setPreStaffId(repairUserDtos.get(0).getPreStaffId()); |
| | | repairUserPo.setPreStaffName(repairUserDtos.get(0).getPreStaffName()); |
| | | repairUserPo.setPreRuId(repairUserDtos.get(0).getPreRuId()); |
| | | repairUserPo.setRepairEvent(RepairUserDto.REPAIR_EVENT_AUDIT_USER); |
| | | repairUserPo.setContext(""); |
| | | RepairUserPo repairUserPo = new RepairUserPo(); |
| | | repairUserPo.setRuId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ruId)); |
| | | repairUserPo.setRepairId(reqJson.getString("repairId")); |
| | | repairUserPo.setbId("-1"); |
| | | repairUserPo.setCommunityId(reqJson.getString("communityId")); |
| | | repairUserPo.setCreateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | | repairUserPo.setState(RepairUserDto.STATE_DOING); |
| | | repairUserPo.setContext(""); |
| | | repairUserPo.setStaffId(repairUserDtos.get(0).getPreStaffId()); |
| | | repairUserPo.setStaffName(repairUserDtos.get(0).getPreStaffName()); |
| | | repairUserPo.setPreStaffId(repairUserDtos.get(0).getStaffId()); |
| | | repairUserPo.setPreStaffName(repairUserDtos.get(0).getStaffName()); |
| | | repairUserPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | | repairUserPo.setRepairEvent(RepairUserDto.REPAIR_EVENT_AUDIT_USER); |
| | | repairUserPo.setPreRuId(repairUserDtos.get(0).getRuId()); |
| | | flag = repairUserV1InnerServiceSMOImpl.saveRepairUserNew(repairUserPo); |
| | | if (flag < 1) { |
| | | throw new CmdException("修改用户失败"); |
| | |
| | | repair.setState("10001"); //处理中 |
| | | int i = repairInnerServiceSMOImpl.queryStaffRepairsCount(repair); |
| | | //取出开关映射的值(维修师傅未处理最大单数) |
| | | String repairNumber = MappingCache.getValue(DOMAIN_COMMON, REPAIR_NUMBER); |
| | | String repairNumber = MappingCache.getValue(MappingConstant.REPAIR_DOMAIN, REPAIR_NUMBER); |
| | | if (i >= Integer.parseInt(repairNumber)) { |
| | | ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "该员工有超过" + Integer.parseInt(repairNumber) + "条未处理的订单急需处理,请安排其他维修人员处理!"); |
| | | context.setResponseEntity(responseEntity); |
| | |
| | | context.setResponseEntity(responseEntity); |
| | | return; |
| | | } |
| | | //插入派单者的信息 |
| | | //更改转单者的信息 |
| | | RepairUserPo repairUserPo = new RepairUserPo(); |
| | | repairUserPo.setRuId(repairUserDtos.get(0).getRuId()); |
| | | repairUserPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | |
| | | flag = repairUserV1InnerServiceSMOImpl.updateRepairUserNew(repairUserPo); |
| | | if (flag < 1) { |
| | | throw new CmdException("修改用户失败"); |
| | | } //处理人信息 |
| | | } |
| | | //处理人信息 |
| | | repairUserPo = new RepairUserPo(); |
| | | repairUserPo.setRuId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ruId)); |
| | | repairUserPo.setState(RepairUserDto.STATE_DOING); |
| | |
| | | String staffId = reqJson.getString("staffId"); |
| | | RepairDto repair = new RepairDto(); |
| | | repair.setStaffId(staffId); |
| | | repair.setState("10001"); //处理中 |
| | | repair.setState("1100"); //接单状态 |
| | | int i = repairInnerServiceSMOImpl.queryStaffRepairsCount(repair); |
| | | //取出开关映射的值(维修师傅未处理最大单数) |
| | | String repairNumber = MappingCache.getValue(DOMAIN_COMMON, REPAIR_NUMBER); |
| | | String repairNumber = MappingCache.getValue(MappingConstant.REPAIR_DOMAIN, REPAIR_NUMBER); |
| | | if (i >= Integer.parseInt(repairNumber)) { |
| | | ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "该员工有超过" + Integer.parseInt(repairNumber) + "条未处理的订单急需处理,请安排其他维修人员处理!"); |
| | | context.setResponseEntity(responseEntity); |
| | |
| | | RepairDto repairDto = new RepairDto(); |
| | | repairDto.setRepairId(repairId); |
| | | List<RepairDto> repairDtos = repairInnerServiceSMOImpl.queryRepairs(repairDto); |
| | | if (repairDtos == null || repairDtos.size() < 1) { |
| | | if (repairDtos == null || repairDtos.size() != 1) { |
| | | ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "数据错误!"); |
| | | context.setResponseEntity(responseEntity); |
| | | } else { |
| | |
| | | String userName = reqJson.getString("userName"); |
| | | |
| | | String ruId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ruId); |
| | | // 自己的单子状态修改为转单 |
| | | // 自己的单子状态修改为派单 |
| | | RepairUserPo repairUserPo = new RepairUserPo(); |
| | | repairUserPo.setRuId(ruId); |
| | | repairUserPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | |
| | | JSONObject businessOwnerRepair = new JSONObject(); |
| | | businessOwnerRepair.putAll(BeanConvertUtil.beanCovertMap(repairDtos.get(0))); |
| | | businessOwnerRepair.put("state", state); |
| | | //计算 应收金额 |
| | | RepairPoolPo repairPoolPo = BeanConvertUtil.covertBean(businessOwnerRepair, RepairPoolPo.class); |
| | | int flag = repairPoolV1InnerServiceSMOImpl.updateRepairPoolNew(repairPoolPo); |
| | | if (flag < 1) { |