Browse Source

Merge remote-tracking branch 'origin/dev' into dev

lazhaoqian 3 years ago
parent
commit
4a99e1070b

+ 32 - 0
blade-service-api/blade-project-api/src/main/java/org/springblade/project/entity/Handover.java

@@ -81,11 +81,43 @@ public class Handover implements Serializable {
 	@ApiModelProperty(value = "交接人姓名")
 	private String handoverUserName;
 	/**
+	 * 接手人
+	 */
+	@ApiModelProperty(value = "接手人")
+	private Long handingUser;
+	/**
+	 * 接手人姓名
+	 */
+	@ApiModelProperty(value = "接手人姓名")
+	private String handingUserName;
+	/**
 	 * 联系人
 	 */
 	@ApiModelProperty(value = "联系人")
 	private String contacts;
 	/**
+	 * 外部
+	 */
+	@ApiModelProperty(value = "外部")
+	private Integer external;
+	/**
+	 * 是否收费
+	 */
+	@ApiModelProperty(value = "是否收费")
+	private Integer chargeStatus;
+	/**
+	 * 是否确认
+	 */
+	@ApiModelProperty(value = "是否确认")
+	private Integer confirmStatus;
+	/**
+	 * 确认时间
+	 */
+	@ApiModelProperty(value = "确认时间")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date confirmTime;
+	/**
 	 * 状态(待补充)
 	 */
 	@ApiModelProperty(value = "状态(待补充)")

+ 10 - 0
blade-service/blade-project/src/main/java/org/springblade/project/controller/HandoverController.java

@@ -121,6 +121,16 @@ public class HandoverController extends BladeController {
 	}
 
 	/**
+	 * 确认
+	 */
+	@GetMapping("/confirm")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "确认", notes = "传入id")
+	public R confirm(Long id) {
+		return R.status(handoverService.confirm(id));
+	}
+
+	/**
 	 * 审核
 	 */
 	@PostMapping("check")

+ 8 - 0
blade-service/blade-project/src/main/java/org/springblade/project/service/IHandoverService.java

@@ -75,6 +75,14 @@ public interface IHandoverService extends IService<Handover> {
 	boolean removeHandover(List<Long> idList);
 
 	/**
+	 * 确认
+	 *
+	 * @param id
+	 * @return
+	 */
+	boolean confirm(Long id);
+
+	/**
 	 * 审核订单
 	 *
 	 * @param handover

+ 44 - 0
blade-service/blade-project/src/main/java/org/springblade/project/service/impl/HandoverServiceImpl.java

@@ -26,12 +26,15 @@ import org.springblade.check.entity.AuditPathsActs;
 import org.springblade.check.entity.AuditPathsLevels;
 import org.springblade.check.feign.ICheckClient;
 import org.springblade.client.entity.CommonFile;
+import org.springblade.client.entity.Message;
 import org.springblade.client.feign.ICommonFileClient;
+import org.springblade.client.feign.IMessageClient;
 import org.springblade.client.feign.ISerialClient;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.project.entity.Handover;
@@ -65,6 +68,8 @@ public class HandoverServiceImpl extends ServiceImpl<HandoverMapper, Handover> i
 
 	private final ICommonFileClient commonFileClient;
 
+	private final IMessageClient messageClient;
+
 	@Override
 	public IPage<HandoverVO> selectHandoverPage(IPage<HandoverVO> page, HandoverVO handover) {
 		return page.setRecords(baseMapper.selectHandoverPage(page, handover));
@@ -99,6 +104,7 @@ public class HandoverServiceImpl extends ServiceImpl<HandoverMapper, Handover> i
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public Long saveHandover(Handover handover) {
+		boolean sendMsg = false;
 		if (ObjectUtil.isEmpty(handover.getId())) {
 			R sysNo = serialClient.getBillNo("JJD", "JJD", "JJD");
 			if (!sysNo.isSuccess()) {
@@ -110,13 +116,38 @@ public class HandoverServiceImpl extends ServiceImpl<HandoverMapper, Handover> i
 			handover.setCreateUser(AuthUtil.getUserId());
 			handover.setCreateTime(new Date());
 			baseMapper.insert(handover);
+
+			if (handover.getChargeStatus() == 1) {
+				sendMsg = true;
+			}
 		} else {
+			Handover temp = baseMapper.selectById(handover.getId());
+			if (handover.getChargeStatus() == 1 && !temp.getHandingUser().equals(handover.getHandingUser())) {
+				sendMsg = true;
+			}
+
 			handover.setUpdateUser(AuthUtil.getUserId());
 			handover.setUpdateTime(new Date());
 			baseMapper.updateById(handover);
 		}
 
 		long handoverId = handover.getId();
+		if (sendMsg) {
+			Message message = new Message();
+			message.setParameter(String.valueOf(handoverId));
+			message.setUserName(AuthUtil.getUserName());
+			message.setUserId(AuthUtil.getUserId());
+			message.setToUserId(handover.getHandingUser());
+			message.setMessageType(1);
+			message.setTenantId(AuthUtil.getTenantId());
+			message.setCreateUser(AuthUtil.getUserId());
+			message.setCreateTime(new Date());
+			message.setUrl("/workManagement/handoverSheet/index");
+			message.setMessageBody("您有新的交接单,客户:" + handover.getCorpName() + ",日期:" + DateUtil.formatDate(handover.getHandoverDate()));
+			message.setPageLabel("交接单");
+			messageClient.save(message);
+		}
+
 		handover.getItemList().forEach(item -> {
 			if (ObjectUtil.isEmpty(item.getId())) {
 				item.setPid(handoverId);
@@ -159,6 +190,19 @@ public class HandoverServiceImpl extends ServiceImpl<HandoverMapper, Handover> i
 	}
 
 	@Override
+	public boolean confirm(Long id) {
+		Handover handover = baseMapper.selectById(id);
+		if (!handover.getHandingUser().equals(AuthUtil.getUserId())) {
+			throw new RuntimeException("当前登录用户非交接人,禁止确认!");
+		}
+
+		handover.setConfirmStatus(1);
+		handover.setConfirmTime(new Date());
+		baseMapper.updateById(handover);
+		return true;
+	}
+
+	@Override
 	public void checkHandover(Handover handover) {
 		// 判断是否有审批流,如果审批流已开启就进入审批流,否则直接走申请通过
 		AuditPathsActs pathsActs = checkClient.getActsByActId(12, "status");