美之高订单数据同步
This commit is contained in:
parent
11ea86cb37
commit
7d431c2955
|
|
@ -242,4 +242,6 @@ public interface SalaryAcctResultService {
|
|||
* @return
|
||||
*/
|
||||
Map<String, String> sumSalaryApprovalFields(SalaryAcctResultQueryParam param);
|
||||
|
||||
String generateMzgCpddb(Date firstDayDateOfMonth, Date lastDayDateOfMonth);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ import org.apache.commons.lang3.math.NumberUtils;
|
|||
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||
import org.springframework.util.StopWatch;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.conn.RecordSetDataSource;
|
||||
import weaver.formmode.setup.ModeRightInfo;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.general.TimeUtil;
|
||||
|
|
@ -1812,4 +1813,104 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String generateMzgCpddb(Date firstDayDateOfMonth, Date lastDayDateOfMonth) {
|
||||
BaseBean baseBean = new BaseBean();
|
||||
String dataSource = baseBean.getPropValue("mzgSalaryReport", "erp_datasource_name");
|
||||
RecordSetDataSource erpRs = new RecordSetDataSource(dataSource);
|
||||
erpRs.execute("exec MG_ProdTOhr '"+SalaryDateUtil.getFormatLocalDate(firstDayDateOfMonth)+"','"+SalaryDateUtil.getFormatLocalDate(lastDayDateOfMonth) +"'");
|
||||
List<MzgCpddData> mzgCpddList = new ArrayList<>();
|
||||
while (erpRs.next()) {
|
||||
MzgCpddData cpddData = new MzgCpddData();
|
||||
cpddData.setBm(erpRs.getString("部门"));
|
||||
cpddData.setZzzb(erpRs.getString("制作组别"));
|
||||
cpddData.setScgdh(erpRs.getString("生产工单号"));
|
||||
cpddData.setWlbh(erpRs.getString("物料编号"));
|
||||
cpddData.setCpxh(erpRs.getString("产品型号"));
|
||||
cpddData.setWlmc(erpRs.getString("物料名称"));
|
||||
cpddData.setTzbh(erpRs.getString("图纸编号"));
|
||||
cpddData.setRksl(erpRs.getString("入库数量"));
|
||||
cpddData.setSl(erpRs.getString("数量"));
|
||||
cpddData.setJournalid(erpRs.getString("日记帐号"));
|
||||
cpddData.setRq(SalaryDateUtil.stringToDate(erpRs.getString("入库日期")));
|
||||
mzgCpddList.add(cpddData);
|
||||
}
|
||||
|
||||
|
||||
// 入库,权限重构
|
||||
if (CollectionUtils.isNotEmpty(mzgCpddList)) {
|
||||
log.info("产品订单表同步开始入库");
|
||||
RecordSet rs = new RecordSet();
|
||||
// 入库前先删除
|
||||
String deleteSql = "delete from uf_cpddbtb where rq >=? and rq <= ?";
|
||||
rs.executeUpdate(deleteSql, new Object[]{SalaryDateUtil.getFormatLocalDate(firstDayDateOfMonth), SalaryDateUtil.getFormatLocalDate(lastDayDateOfMonth)});
|
||||
String currDate = String.format("'%s'", TimeUtil.getCurrentDateString());
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
|
||||
String currTime = String.format("'%s'", sdf.format(new Date()));
|
||||
// 获取建模模块id
|
||||
String modeId = baseBean.getPropValue("mzgSalaryReport", "cpddbtb_mode_id");
|
||||
// 先插入一条数据
|
||||
MzgCpddData firstData = mzgCpddList.get(0);
|
||||
StringBuilder firstSb = new StringBuilder();
|
||||
firstSb.append("insert into uf_cpddbtb(formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,journalid,bm,zzzb,scdgh,wlbh,cpxh,wlmc,tzbh,rksl,sl,rq) values (");
|
||||
firstSb.append(modeId).append(",1,0,").append(currDate).append(",").append(currTime).append(",'")
|
||||
.append(firstData.getJournalid()).append("','")
|
||||
.append(firstData.getBm()).append("','")
|
||||
.append(firstData.getZzzb()).append("','")
|
||||
.append(firstData.getScgdh()).append("','")
|
||||
.append(firstData.getWlbh()).append("','")
|
||||
.append(firstData.getCpxh()).append("','")
|
||||
.append(firstData.getWlmc()).append("','")
|
||||
.append(firstData.getTzbh()).append("','")
|
||||
.append(firstData.getRksl()).append("','")
|
||||
.append(firstData.getSl()).append("','")
|
||||
.append(SalaryDateUtil.getFormatLocalDate(firstData.getRq())).append("')");
|
||||
rs.execute(firstSb.toString());
|
||||
mzgCpddList.remove(0);
|
||||
// 获取最大值 作为权限重构的起始id
|
||||
rs.execute("select max(id) from uf_cpddbtb");
|
||||
int minId = 0;
|
||||
if (rs.next()) {
|
||||
minId = rs.getInt(1);
|
||||
}
|
||||
int maxId = minId + mzgCpddList.size();
|
||||
|
||||
List<List<MzgCpddData>> partition = Lists.partition(mzgCpddList, 500);
|
||||
partition.forEach(part -> {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("insert into uf_cpddbtb(formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,journalid,bm,zzzb,scdgh,wlbh,cpxh,wlmc,tzbh,rksl,sl,rq) values ");
|
||||
for (MzgCpddData data : part) {
|
||||
sb.append("(")
|
||||
.append(modeId).append(",1,0,").append(currDate).append(",").append(currTime).append(",'")
|
||||
.append(data.getJournalid()).append("','")
|
||||
.append(data.getBm()).append("','")
|
||||
.append(data.getZzzb()).append("','")
|
||||
.append(data.getScgdh()).append("','")
|
||||
.append(data.getWlbh()).append("','")
|
||||
.append(data.getCpxh()).append("','")
|
||||
.append(data.getWlmc()).append("','")
|
||||
.append(data.getTzbh()).append("','")
|
||||
.append(data.getRksl()).append("','")
|
||||
.append(data.getSl()).append("','")
|
||||
.append(SalaryDateUtil.getFormatLocalDate(data.getRq())).append("'),");
|
||||
}
|
||||
rs.execute(sb.substring(0,sb.length()-1).toString());
|
||||
});
|
||||
log.info("产品订单表同步完成入库");
|
||||
log.info("产品订单表同步开始权限重构minid{},maxid{}",minId,maxId);
|
||||
// 权限重构
|
||||
if (modeId != null && NumberUtils.isCreatable(modeId)) {
|
||||
Integer modeIdValue = Integer.valueOf(modeId);
|
||||
for (int i = minId; i <= maxId; i++) {
|
||||
ModeRightInfo ModeRightInfo = new ModeRightInfo();
|
||||
ModeRightInfo.setNewRight(true);
|
||||
ModeRightInfo.editModeDataShare(1, modeIdValue, i);
|
||||
}
|
||||
}
|
||||
log.info("产品订单表同步完成权限重构minid{},maxid{}",minId,maxId);
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
package com.engine.salary.timer;
|
||||
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.salary.service.SalaryAcctResultService;
|
||||
import com.engine.salary.service.impl.SalaryAcctResultServiceImpl;
|
||||
import com.engine.salary.util.SalaryDateUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import weaver.hrm.User;
|
||||
import weaver.interfaces.schedule.BaseCronJob;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @ClassName AutoSyncAttendQuoteData
|
||||
* @date 2023/08/11 9:53
|
||||
* @description 自动生成 美之高产品订单表(同步)
|
||||
*/
|
||||
public class AutoSyncMzgCpddb extends BaseCronJob {
|
||||
|
||||
private String preMonth;
|
||||
|
||||
private String salaryMonth;
|
||||
|
||||
private SalaryAcctResultService getSalaryAcctResultService(User user) {
|
||||
return ServiceUtil.getService(SalaryAcctResultServiceImpl.class, user);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
User tempUser = new User();
|
||||
tempUser.setUid(1);
|
||||
tempUser.setLoginid("sysadmin");
|
||||
LocalDate localDate = SalaryDateUtil.dateToLocalDate(new Date());
|
||||
|
||||
int preMonthValue = -1;
|
||||
if (preMonth != null && NumberUtils.isCreatable(preMonth)) {
|
||||
preMonthValue = -1 * Integer.valueOf(preMonth);
|
||||
}
|
||||
localDate = localDate.plusMonths(preMonthValue);
|
||||
Date date = SalaryDateUtil.localDateToDate(localDate);
|
||||
if (StringUtils.isNotBlank(salaryMonth) && SalaryDateUtil.checkYearMonth(salaryMonth)) {
|
||||
date = SalaryDateUtil.dateStrToLocalYearMonth(salaryMonth);
|
||||
}
|
||||
|
||||
Date firstDayDateOfMonth = SalaryDateUtil.getFirstDayDateOfMonthWithMinutesAndSeconds(date);
|
||||
Date lastDayDateOfMonth = SalaryDateUtil.getLastDayDateOfMonthWithMinutesAndSeconds(date);
|
||||
getSalaryAcctResultService(tempUser).generateMzgCpddb(firstDayDateOfMonth, lastDayDateOfMonth);
|
||||
}
|
||||
}
|
||||
|
|
@ -950,4 +950,5 @@ public class SalaryAcctController {
|
|||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -288,6 +288,7 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult
|
|||
getSalaryAcctResultService(user).generateMzgCpjsgzdj(param);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 薪资核算-校验
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue