This commit is contained in:
@jyuhsin
2025-11-29 09:31:10 +08:00
parent 376264f434
commit c21570b916
19 changed files with 839 additions and 674 deletions
@@ -0,0 +1,60 @@
package com.budwk.app.zhgh.dayofficework.ghkh.controller;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.result.Result;
import com.budwk.app.zhgh.dayofficework.ghkh.model.ExamConfig;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
/**
* @ClassName ExamConfigController
* @Author JyuHsin
* @Date 2025/11/27 15:00
* @Version 1.0
* @Description TODO
*/
@Slf4j
@IocBean
@Ok("json:full")
@Api(tags = "量化考核配置")
@At("/platform/exam/config")
public class ExamConfigController {
@Inject
private Dao dao;
@At("/")
@SaCheckPermission("exam.config")
@Ok("beetl:/platform/zhgh/dayofficework/ghkh/config/index.html")
public void index() {}
@At
@ApiOperation("查询配置")
@SaCheckLogin
public Result fetch() {
ExamConfig config = dao.fetch(ExamConfig.class, Cnd.NEW());
return Result.success(config);
}
@At
@ApiOperation("新增/修改配置")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("exam.config")
@SLog(tag = "量化考核-考核配置", msg = "新增/修改配置")
public Object submit(ExamConfig config) {
dao.insertOrUpdate(config);
return Result.success();
}
}
@@ -2,6 +2,7 @@ package com.budwk.app.zhgh.dayofficework.ghkh.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.date.DateUtil;
import com.budwk.app.base.result.Result;
import com.budwk.app.base.service.BaseService;
import com.budwk.app.sys.models.Sys_user;
@@ -37,27 +38,23 @@ import java.util.concurrent.atomic.AtomicInteger;
@IocBean
public class GhKhZpController {
@Inject
private KhzpService khzpService;
@Inject
private BaseService baseService;
@Inject
private KhZbService khZbService;
@At("")
@Ok("beetl:/platform/zhgh/dayofficework/ghkh/zp.html")
@SaCheckPermission("ghkh.zp")
public void index() {
}
@Inject
private KhzpService khzpService;
@Inject
private GhkhGhzbController ghkhGhzbController;
public void index() {}
@At
@SaCheckPermission("ghkh.zp")
public Result pageData(@Param(value = "annual") String annual,
@Param(value = "assessment") String assessment, int pageNumber, int pageSize) {
Sql sql = Sqls.create("SELECT * from kh_zb zb left join kh_record re on zb.id = re.zb_id and re.union_id = @unionid $condition").setParam("unionid", SecurityUtil.getUnionId());
Cnd cnd = Cnd.NEW();
// if (ShiroUtil.hasRole("H04")) {
@@ -78,9 +75,6 @@ public class GhKhZpController {
return Result.success(khzpService.listPage(pageNumber, pageSize, sql));
}
@Inject
private BaseService baseService;
@At
@POST
@SaCheckPermission("ghkh.zp")
@@ -89,10 +83,7 @@ public class GhKhZpController {
if (zp.length == 0) {
return null;
}
int score = 0;
for (Kh_zp kh_zp : zp) {
kh_zp.setFlatid(SecurityUtil.getUnionId());
khzpService.dao().insertOrUpdate(kh_zp);
@@ -107,27 +98,22 @@ public class GhKhZpController {
record.setUnion_id(SecurityUtil.getUnionId());
record.setZp_score(score);
record.setXgh_score(0);
record.setState(handletype.equals("submit") ? 2 : 1);
record.setState("submit".equals(handletype) ? 2 : 1);
record.setFillTime(DateUtil.now());
} else {
record.setZp_score(score);
if (handletype.equals("submit")) {
if ("submit".equals(handletype)) {
record.setState(2);
}
}
baseService.dao().insertOrUpdate(record);
return Result.success();
}
@Inject
private KhZbService khZbService;
@At
public Result openView(String id) {
Kh_zb khzb = khZbService.khzb(id);
List<Kh_zp> list = khzpService.query(Cnd.where("zb_id", "=", id).and("flatid", "=", SecurityUtil.getUnionId()));
khzb.getNrs().forEach(nr -> {
nr.getBzs().forEach(bz -> {
Kh_zp zp = list.stream().filter(v -> v.getBz_id().equals(bz.getId())).findFirst().orElse(null);
@@ -2,6 +2,7 @@ package com.budwk.app.zhgh.dayofficework.ghkh.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.zhgh.dayofficework.ghkh.model.Kh_zb;
import com.budwk.app.zhgh.dayofficework.ghkh.model.kh_nr;
@@ -36,110 +37,106 @@ import java.util.List;
public class GhkhGhzbController {
@Inject
private KhZbService khZbService;
@Inject
private KhNrService khNrService;
@Inject
private KhBzService khBzService;
@Inject
private KhZbService khZbService;
@Inject
private KhNrService khNrService;
@Inject
private KhBzService khBzService;
@At("")
@Ok("beetl:/platform/zhgh/dayofficework/ghkh/khzb.html")
@SaCheckPermission("ghkh.khzb")
public void index() {
@At("")
@Ok("beetl:/platform/zhgh/dayofficework/ghkh/khzb.html")
@SaCheckPermission("ghkh.khzb")
public void index() {
}
}
@At
@SaCheckPermission("ghkh.khzb")
public Result pageData(PageForm pageForm,
@Param(value = "annual") String annual,
@Param(value = "assessment") String assessment) {
Sql sql = Sqls.create("SELECT * FROM `kh_zb` $condition");
Cnd cnd = Cnd.NEW();
if (Strings.isNotBlank(annual) && Strings.isNotBlank(annual)) {
cnd.and("annual", "=", annual);
}
if (Strings.isNotBlank(assessment) && Strings.isNotBlank(assessment)) {
cnd.where().andLike("assessment", assessment);
}
cnd.desc("createTime");
sql.setCondition(cnd);
return Result.success(khZbService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql));
}
@At
@SaCheckPermission("ghkh.khzb")
public Result pageData(@Param(value = "annual") String annual,
@Param(value = "assessment") String assessment,
int pageNumber, int pageSize) {
Sql sql = Sqls.create("SELECT * FROM `kh_zb` $condition");
Cnd cnd = Cnd.NEW();
if (Strings.isNotBlank(annual) && Strings.isNotBlank(annual)) {
cnd.and("annual", "=", annual);
}
if (Strings.isNotBlank(assessment) && Strings.isNotBlank(assessment)) {
cnd.where().andLike("assessment", assessment);
} else {
cnd.desc("annual");
}
sql.setCondition(cnd);
return Result.success(khZbService.listPage(pageNumber, pageSize, sql));
}
@At
public Result getZb(String id) {
return Result.success(khZbService.khzb(id));
}
@At
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("ghkh.khzb")
public Result delete(String id) {
@At
public Result getZb(String id) {
return Result.success(khZbService.khzb(id)) ;
}
khZbService.delete(id);
List<kh_nr> query = khNrService.query(Cnd.where("zb_id", "=", id));
@At
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("ghkh.khzb")
public Result delete(String id) {
for (kh_nr kh_nr : query) {
khBzService.clear(Cnd.where("nr_id", "=", kh_nr.getId()));
}
khZbService.delete(id);
khNrService.clear(Cnd.where("zb_id", "=", id));
List<kh_nr> query = khNrService.query(Cnd.where("zb_id", "=", id));
return Result.success();
}
for (kh_nr kh_nr : query) {
khBzService.clear(Cnd.where("nr_id", "=", kh_nr.getId()));
}
@At
public Result edit(String id) {
return getZb(id);
}
khNrService.clear(Cnd.where("zb_id", "=", id));
@At
@POST
@SaCheckPermission("ghkh.khzb")
@Aop(TransAop.READ_COMMITTED)
public Result doEdit(@Param(value = "kh_zb") Kh_zb kh_zb) {
khZbService.updateIgnoreNull(kh_zb);
return Result.success();
}
List<kh_nr> query = khNrService.query(Cnd.where("zb_id", "=", kh_zb.getId()));
@At
public Result edit(String id) {
return getZb(id);
}
for (kh_nr kh_nr : query) {
System.err.println(kh_nr.getZb_id());
khBzService.clear(Cnd.where("nr_id", "=", kh_nr.getId()));
}
@At
@POST
@SaCheckPermission("ghkh.khzb")
@Aop(TransAop.READ_COMMITTED)
public Result doEdit(@Param(value = "kh_zb") Kh_zb kh_zb) {
khZbService.updateIgnoreNull(kh_zb);
khNrService.clear(Cnd.where("zb_id", "=", kh_zb.getId()));
List<kh_nr> query = khNrService.query(Cnd.where("zb_id", "=", kh_zb.getId()));
for (kh_nr nr : kh_zb.getNrs()) {
nr.setZb_id(kh_zb.getId());
khNrService.insertWith(nr, "bzs");
}
return Result.success();
for (kh_nr kh_nr : query) {
System.err.println(kh_nr.getZb_id());
khBzService.clear(Cnd.where("nr_id", "=", kh_nr.getId()));
}
}
khNrService.clear(Cnd.where("zb_id", "=", kh_zb.getId()));
@At
@POST
@SaCheckPermission("ghkh.khzb")
public Result toggleEnable(@Param("id") String id, @Param("enable") boolean enable) {
if (Strings.isBlank(id)) {
return Result.error("参数错误");
}
for (kh_nr nr : kh_zb.getNrs()) {
nr.setZb_id(kh_zb.getId());
khNrService.insertWith(nr, "bzs");
}
return Result.success();
Kh_zb khZb = khZbService.fetch(id);
if (khZb == null) {
return Result.error("未找到对应的考核指标");
}
}
khZb.setDisabled(enable);
khZbService.updateIgnoreNull(khZb);
@At
@POST
@SaCheckPermission("ghkh.khzb")
public Result toggleEnable(@Param("id") String id, @Param("enable") boolean enable) {
if (Strings.isBlank(id)) {
return Result.error("参数错误");
}
Kh_zb khZb = khZbService.fetch(id);
if (khZb == null) {
return Result.error("未找到对应的考核指标");
}
khZb.setDisabled(enable);
khZbService.updateIgnoreNull(khZb);
return Result.success("操作成功");
}
return Result.success("操作成功");
}
}
@@ -1,11 +1,17 @@
package com.budwk.app.zhgh.dayofficework.ghkh.controller;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.budwk.app.base.result.Result;
import com.budwk.app.zhgh.dayofficework.ghkh.model.ExamConfig;
import com.budwk.app.zhgh.dayofficework.ghkh.model.Kh_record;
import com.budwk.app.zhgh.dayofficework.ghkh.model.Kh_zb;
import com.budwk.app.zhgh.dayofficework.ghkh.service.KhXghshService;
import com.budwk.app.zhgh.dayofficework.ghkh.service.KhZbService;
import io.swagger.models.auth.In;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.ioc.loader.annotation.Inject;
@@ -14,6 +20,8 @@ import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import java.util.List;
/**
* Created with IntelliJ IDEA.
*
@@ -37,7 +45,6 @@ public class GhkhKhphController {
@SaCheckPermission("ghkh.khph")
public void index() {}
@At
@SaCheckPermission("ghkh.khph")
public Result pageData(int pageNumber, int pageSize,
@@ -53,10 +60,10 @@ public class GhkhKhphController {
cnd.and("re.zb_id ", "=", khid);
cnd.and("re.state", "=", 3);
cnd.andEX("zb.`annual`","=",annual);
cnd.desc("re.xgh_score");
cnd.desc("re.totalScore");
cnd.groupBy("re.union_id");
sql.setCondition(cnd);
return Result.success(khXghshService.listPage(pageNumber, pageSize, sql));
return Result.success(khXghshService.listPageMap(pageNumber, pageSize, sql));
}
@At
@@ -65,4 +72,25 @@ public class GhkhKhphController {
return Result.success(khZbService.list(sql));
}
@At
@SaCheckLogin
public Result doEditScore(String id, Integer score, String khId) {
Kh_record record = khZbService.dao().fetch(Kh_record.class, id);
ExamConfig config = khZbService.dao().fetch(ExamConfig.class, Cnd.NEW());
record.setOffLineScore(score);
if(config.getOffLine() != null) {
record.setOffLineFinalScore(score * config.getOffLine() * 0.01);
} else {
record.setOffLineFinalScore(Double.valueOf(score));
}
record.setTotalScore(record.getOnLineFinalScore() + record.getOffLineFinalScore());
khZbService.dao().update(record);
List<Kh_record> list = khZbService.dao().query(Kh_record.class, Cnd.where("zb_id", "=", khId).desc("totalScore"));
for (int i = 0; i < list.size(); i++) {
list.get(i).setSort(i + 1);
}
khZbService.dao().update(list);
return Result.success();
}
}
@@ -5,16 +5,14 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import com.budwk.app.base.result.Result;
import com.budwk.app.base.service.BaseService;
import com.budwk.app.sys.models.Sys_user;
import com.budwk.app.zhgh.dayofficework.ghkh.model.Kh_record;
import com.budwk.app.zhgh.dayofficework.ghkh.model.Kh_xghsh;
import com.budwk.app.zhgh.dayofficework.ghkh.model.Kh_zb;
import com.budwk.app.zhgh.dayofficework.ghkh.model.Kh_zp;
import com.budwk.app.zhgh.dayofficework.ghkh.model.*;
import com.budwk.app.zhgh.dayofficework.ghkh.service.KhXghshService;
import com.budwk.app.zhgh.dayofficework.ghkh.service.KhZbService;
import com.budwk.app.zhgh.dayofficework.ghkh.service.KhzpService;
import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.DaoUp;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Strings;
@@ -112,7 +110,10 @@ public class GhkhXghshController {
if (zp != null) {
bz.setZp(zp);
}
});
Kh_xghsh xghsh = khZbService.dao().fetch(Kh_xghsh.class, Cnd.where("bz_id", "=", bz.getId()).and("flatid", "=", union_id));
bz.setSchools(xghsh.getSchools());
bz.setAddition(xghsh.getAddition());
});
});
return Result.success(khzb);
}
@@ -129,7 +130,7 @@ public class GhkhXghshController {
@At
@POST
@SaCheckPermission("ghkh.xghsh")
public Result marking(@Param(value = "pf") Kh_xghsh[] pf) {
public Result marking(@Param(value = "pf") Kh_xghsh[] pf, @Param(value = "type") String type) {
if (pf.length == 0) {
return null;
@@ -138,6 +139,7 @@ public class GhkhXghshController {
int score = 0;
// Sys_user sys_user = (Sys_user) ShiroUtil.getPrincipal();
khXghshService.dao().clear(Kh_xghsh.class, Cnd.where("zb_id", "=", pf[0].getZb_id()).and("flatid", "=", pf[0].getFlatid()));
for (Kh_xghsh p : pf) {
khzpService.dao().insert(p);
score += p.getSchools() != null ? p.getSchools() : 0;
@@ -147,7 +149,16 @@ public class GhkhXghshController {
if (record != null) {
record.setXgh_score(score);
record.setState(3);
ExamConfig config = baseService.dao().fetch(ExamConfig.class, Cnd.NEW());
if(config.getOnLine() != null) {
record.setOnLineFinalScore(score * config.getOnLine() * 0.01);
} else {
record.setOnLineFinalScore((double) score);
}
record.setTotalScore(record.getOnLineFinalScore());
if("submit".equals(type)) {
record.setState(3);
}
baseService.dao().update(record);
}
@@ -0,0 +1,51 @@
package com.budwk.app.zhgh.dayofficework.ghkh.model;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
/**
* @ClassName ExamConfig
* @Author JyuHsin
* @Date 2025/11/27 14:57
* @Version 1.0
* @Description TODO
*/
@Data
@Comment("考核配置")
@Accessors(chain = true)
@Table("exam_config")
@EqualsAndHashCode(callSuper = true)
public class ExamConfig extends BaseModel {
@Name
@Comment("ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@Comment("线上成绩占比")
@ColDefine(type = ColType.INT)
private Integer onLine;
@Column
@Comment("线下成绩占比")
@ColDefine(type = ColType.INT)
private Integer offLine;
@Column
@Comment("是否需要分工会自评")
@ColDefine(type = ColType.BOOLEAN)
@Default("1")
private Boolean selfAssessment;
@Column
@Comment("是否显示单项分")
@ColDefine(type = ColType.BOOLEAN)
@Default("1")
private Boolean displaySingleItem;
}
@@ -96,4 +96,6 @@ public class Kh_bz extends BaseModel {
private Kh_zp zp;
private Kh_xghsh sh;
private Integer schools;
private String addition;
}
@@ -1,5 +1,6 @@
package com.budwk.app.zhgh.dayofficework.ghkh.model;
import lombok.Data;
import org.nutz.dao.entity.annotation.*;
/**
@@ -9,6 +10,7 @@ import org.nutz.dao.entity.annotation.*;
* @Date: 2020/10/12/16:43
* @Description: 考核记录
*/
@Data
@Table("Kh_record")
public class Kh_record {
@@ -44,51 +46,37 @@ public class Kh_record {
@ColDefine(type = ColType.INT, width = 4)
private Integer xgh_score;
public String getRecord_id() {
return record_id;
}
@Column
@Comment("线上最终得分")
@ColDefine(type = ColType.INT, width = 4)
private Double onLineFinalScore;
public void setRecord_id(String record_id) {
this.record_id = record_id;
}
@Column
@Comment("创建时间")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String fillTime;
public String getZb_id() {
return zb_id;
}
@Column
@Comment("线下得分")
@ColDefine(type = ColType.INT, width = 4)
@Default(value = "0")
private Integer offLineScore;
public void setZb_id(String zb_id) {
this.zb_id = zb_id;
}
@Column
@Comment("线下最终得分")
@ColDefine(type = ColType.INT, width = 4)
@Default(value = "0")
private Double offLineFinalScore;
public String getUnion_id() {
return union_id;
}
@Column
@Comment("总分")
@ColDefine(type = ColType.INT, width = 4)
@Default(value = "0")
private Double totalScore;
public void setUnion_id(String union_id) {
this.union_id = union_id;
}
public Integer getState() {
return state;
}
public void setState(Integer state) {
this.state = state;
}
public Integer getZp_score() {
return zp_score;
}
public void setZp_score(Integer zp_score) {
this.zp_score = zp_score;
}
public Integer getXgh_score() {
return xgh_score;
}
public void setXgh_score(Integer xgh_score) {
this.xgh_score = xgh_score;
}
@Column
@Comment("排名")
@ColDefine(type = ColType.INT, width = 4)
@Default(value = "1")
private Integer sort;
}
@@ -26,6 +26,7 @@ public class Kh_xghsh extends BaseModel {
@Column
@Comment("校工会评分")
@ColDefine(type = ColType.INT, width = 4)
@Default("0")
private Integer schools;
@Column
@@ -1,6 +1,7 @@
package com.budwk.app.zhgh.dayofficework.ghkh.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.DB;
import org.nutz.dao.entity.annotation.*;
import com.budwk.app.base.model.BaseModel;
@@ -16,8 +17,9 @@ import java.util.List;
* @Date: 2020/09/25/11:46
* @Description:考核指标
*/
@Table("Kh_zb")
@Data
@Table("Kh_zb")
@EqualsAndHashCode(callSuper = true)
public class Kh_zb extends BaseModel {
@Column
@@ -87,7 +89,6 @@ public class Kh_zb extends BaseModel {
@ColDefine(type = ColType.VARCHAR, width = 32)
private String assessment;
@Column
@Comment("填报开始时间")
@ColDefine(type = ColType.DATETIME)
@@ -125,8 +126,7 @@ public class Kh_zb extends BaseModel {
@Column
@Comment("添加时间")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String addtime;
private String addTime;
@Many(field = "zb_id")
private List<kh_nr> nrs;
@@ -137,53 +137,4 @@ public class Kh_zb extends BaseModel {
@SQL(db= DB.MYSQL,value = "SELECT IFNULL(MAX(location),0)+1 FROM Kh_zb"),
})
private Integer location;
public Integer getLocation() {
return location;
}
public void setLocation(Integer location) {
this.location = location;
}
public List<kh_nr> getNrs() {
return nrs;
}
public void setNrs(List<kh_nr> nrs) {
this.nrs = nrs;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getAnnual() {
return annual;
}
public void setAnnual(String annual) {
this.annual = annual;
}
public String getAssessment() {
return assessment;
}
public void setAssessment(String assessment) {
this.assessment = assessment;
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime;
}
}